35 lines
2.0 KiB
Markdown
35 lines
2.0 KiB
Markdown
# БД WatchBody (PostgreSQL)
|
||
|
||
> Документация БД серверной части — шаг 6 процесса
|
||
> (`std1\_process\process.md`), правила d-db (`std1\_rules\d\d-db.md`),
|
||
> db-func (`std1\_rules\db\db-func.md`). Решение шага 6 —
|
||
> [0-mng\plan.md](../0-mng/plan.md).
|
||
|
||
## Общие сведения
|
||
|
||
- **СУБД:** PostgreSQL 17+; доступ — только через хранимые функции
|
||
(`Kit.Helpers\Db.Postgres.SqlServerHelper`, tech-requirements разд. 3).
|
||
- **Схемы-слои:** `src` — основные данные (атлеты, тренировки,
|
||
программы, метрики); `ref` — справочники (двигательные группы).
|
||
- **Изоляция атлетов (🛡):** каждая таблица данных несёт `athlete_id`;
|
||
все функции слоя `src` принимают `p_athlete_id` и выбирают/пишут
|
||
только в пределах атлета (requirements, Ф-8.5, инвариант раздела 5).
|
||
- **Идемпотентность (🛡):** клиентские сущности несут `client_guid`
|
||
(UNIQUE) — повторная вставка возвращает существующий id
|
||
(`ON CONFLICT DO NOTHING` + `SELECT`).
|
||
- **JSON:** версии программ и факты .fit — `jsonb` с проверкой схемы
|
||
на стороне приложения (не в БД).
|
||
|
||
## Состав
|
||
|
||
| Файл | Содержание |
|
||
|---|---|
|
||
| [ref\tables.md](ref/tables.md) | справочники слоя `ref` |
|
||
| [src\tables.md](src/tables.md) | таблицы слоя `src` |
|
||
| `{слой}\functions.md` | списки функций (после утверждения таблиц) |
|
||
|
||
## Таблица `llm_calls` (v2)
|
||
|
||
Журнал вызовов LLM-планировщика (дизайн LLM-планирования, разд. 8)
|
||
создаётся в v2 вместе с `LlmPlanner` — в v1 не проектируется.
|