VEU.WathBody/1-docs/2-db/readme.md

35 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# БД 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 не проектируется.