Kit.Db/docs/tz.md

199 lines
7.5 KiB
Markdown
Raw Permalink 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.

# ТЗ — Формирование проекта для БД
## Общее описание
На основании файловой структуры (см. architecture.md) формируется проект для конкретной базы данных. Каждый проект — автономная единица с собственными настройками, исходниками и документацией.
---
## Шаблон структуры
```
Kit.Db/
├── rules/ # Правила для LLM по движкам
│ ├── common/ # Общие правила для всех СУБД
│ │ └── ...
│ ├── pg/ # Правила PostgreSQL
│ │ └── db-project-rule.md
│ └── sqlite/ # Правила SQLite
│ └── db-project-rule.md
├── skills/ # LLM промпты (описания таблиц, функций)
│ └── ...
└── projects/ # Проекты БД
├── pg/ # ── PostgreSQL проекты ──
│ │
│ └── kit_auth_pg/ # Проект: БД авторизации
│ │
│ ├── readme.md # Описание БД
│ │
│ ├── settings/ # Настройки подключения
│ │ └── connection.json
│ │
│ ├── auth/ # Модуль: авторизация
│ │ ├── tables/ # DDL таблиц
│ │ │ ├── user.psql
│ │ │ ├── cabinet.psql
│ │ │ └── user_cabinet.psql
│ │ │
│ │ ├── functions/ # SQL функции
│ │ │ ├── user_select_by_ids/
│ │ │ │ └── user_select_by_ids.psql
│ │ │ └── user_create/
│ │ │ └── user_create.psql
│ │ │
│ │ ├── scripts/ # Произвольные скрипты
│ │ │ └── seed_roles.sql
│ │ │
│ │ ├── init/ # Инициализация
│ │ │ └── create_schema.psql
│ │ │
│ │ ├── deploy/ # Миграции
│ │ │ ├── 2026-07-08_user-select-by-ids.sql
│ │ │ └── 2026-07-09-user-seed-merge.sql
│ │ │
│ │ ├── auth.psql # Точка входа модуля
│ │ └── auth.post-deploy.psql
│ │
│ └── _docs/ # Документация проекта
│ ├── diagrams/
│ ├── openapi.yaml
│ └── architecture.md
└── sl3/ # ── SQLite проекты ──
└── kit_example_sl3/ # Проект: пример
├── readme.md
├── settings/
│ └── connection.json
├── main/ # Модуль: основной
│ ├── tables/
│ ├── scripts/
│ ├── init/
│ ├── deploy/
│ └── main.sql
└── _docs/
├── diagrams/
├── openapi.yaml
└── architecture.md
```
---
## Структура проекта
Каждый проект БД создаётся по пути:
```
projects/{engine}/{project_name}/
```
Где:
- `{engine}` — тип СУБД (pg, sqlite, mysql, mssql и т.д.)
- `{project_name}` — имя проекта в формате `имя_БД_движок` (например `kit_auth_pg`)
---
## Обязательные компоненты проекта
### 1. readme.md
Описание проекта:
- Назначение БД
- Движок и версия
- Краткое описание модулей
- Связи с другими БД (если есть)
### 2. settings/
Папка с настройками подключения:
- `connection.json` — параметры подключения к БД (хост, порт, БД, пользователь)
Пример `connection.json`:
```json
{
"host": "localhost",
"port": 5432,
"database": "kit_auth",
"username": "postgres",
"password": ""
}
```
### 3. Модули (auth/, payments/, и т.д.)
Каждый модуль содержит:
- `tables/` — DDL-скрипты таблиц
- `functions/` — SQL-функции и хранимые процедуры
- `scripts/` — SQL-скрипты (миграции, seed-данные, утилиты)
- `init/` — скрипты инициализации (создание схемы, начальные данные)
- `deploy/` — инфраструктура развёртывания (docker-compose, bat, sh)
- `{module}.psql` — главный файл модуля (точка входа)
### 4. _docs/
Документация проекта:
- `diagrams/` — диаграммы (ER, зависимости, потоки)
- `openapi.yaml` — OpenAPI спецификация (если БД предоставляет API)
- `architecture.md` — описание архитектуры конкретной БД
---
## Правила именования
- Папки — в нижнем регистре, через подчёркивание: `kit_auth_pg`
- SQL-файлы — в нижнем регистре: `create_users_table.sql`
- Функции — по шаблону: `{module}_{action}.sql` (например `auth_get_user_by_id.sql`)
- Таблицы — по шаблону: `{module}_{entity}.sql` (например `auth_users.sql`)
---
## Правила (rules/)
При формировании проекта LLM использует правила из:
- `rules/common/` — общие правила для всех СУБД
- `rules/{engine}/` — правила для конкретного движка
Правила определяют:
- Стиль написания SQL
- Шаблоны описания таблиц и функций
- Формат комментариев
- Стандарты именования
---
## Skills
При формировании проекта LLM использует промпты из `skills/` для:
- Генерации описаний таблиц
- Генерации описаний функций
- Формирования документации
- Создания диаграмм
---
## Порядок создания проекта
1. Создать папку проекта `projects/{engine}/{project_name}/`
2. Создать `readme.md` с описанием
3. Создать `settings/connection.json`
4. Для каждого модуля БД создать папку модуля с подпапками (tables, functions, scripts, init, deploy)
5. Создать `_docs/` с диаграммами и спецификацией
6. Заполнить SQL-файлы на основании требований
7. Проверить структуру на соответствие шаблону