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