исправление хранения календаря
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-30T23:49:30.491131+00:00"
|
||||
question: "как ты думаешь, нужно ли оптимизировать таблицу academic_calendar_days? а то расписаний будет очень много, минимум 1000 и со временем будет расти, а там уже такой большой объём данных, даже когда расписаний мало. Можем подумать как переделать логику чтобы оптимизировать это дело"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["AcademicCalendar", "AcademicDateService", "AcademicCalendarDayRepository", "ScheduleGeneratorService"]
|
||||
---
|
||||
|
||||
# Q: как ты думаешь, нужно ли оптимизировать таблицу academic_calendar_days? а то расписаний будет очень много, минимум 1000 и со временем будет расти, а там уже такой большой объём данных, даже когда расписаний мало. Можем подумать как переделать логику чтобы оптимизировать это дело
|
||||
|
||||
## Answer
|
||||
|
||||
Expanded from original query via graph vocab: academic, calendar, days, schedule, generator, semester, date, repository. Граф помог найти AcademicDateService, AcademicCalendarDayRepository и ScheduleGeneratorService. Сверка исходников показала: рост таблицы зависит от числа уникальных календарных графиков, а не от числа групп или запросов расписания; текущая дневная материализация создаёт примерно 1460 строк на четырёхкурсовый годовой график. Рекомендация: при ожидаемых 1000 уникальных графиках перейти на непересекающиеся интервалы активности по курсу, сохранив дневной DTO на границе API на первом этапе; отдельно убрать дублирующий индекс и ограничить batch-чтение нужными парами график-курс. Партиционирование для такого объёма не требуется.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- AcademicCalendar
|
||||
- AcademicDateService
|
||||
- AcademicCalendarDayRepository
|
||||
- ScheduleGeneratorService
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-31T00:15:22.545259+00:00"
|
||||
question: "давай сделаем \"Один непрерывный период с одинаковой активностью становится одной строкой\". пиши всё в v1 не создавая новую миграцию. внеси изменения о которых сказал, не беспокоясь о проде, потому что проект на этапе разработки и ничего не сломается."
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["AcademicCalendarController", "AcademicCalendarDayRepository", "ScheduleGeneratorService", "AcademicCalendar"]
|
||||
---
|
||||
|
||||
# Q: давай сделаем "Один непрерывный период с одинаковой активностью становится одной строкой". пиши всё в v1 не создавая новую миграцию. внеси изменения о которых сказал, не беспокоясь о проде, потому что проект на этапе разработки и ничего не сломается.
|
||||
|
||||
## Answer
|
||||
|
||||
Expanded from original query via vocab: [academic, calendar, days, grid, activity, repository, schedule, date]. Дневные строки заменены сущностью AcademicCalendarPeriod и таблицей academic_calendar_periods с включительными start_date/end_date. PUT дневной сетки проверяет payload и объединяет соседние даты одного курса с одинаковой активностью; GET разворачивает периоды обратно, поэтому frontend-контракт не изменён. Генератор загружает только пересекающиеся интервалы нужных курсов и ищет активность бинарным поиском. V1 содержит GiST exclusion constraint против пересечений; отдельная миграция не создана. Полные backend-тесты и frontend-проверки прошли.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- AcademicCalendarController
|
||||
- AcademicCalendarDayRepository
|
||||
- ScheduleGeneratorService
|
||||
- AcademicCalendar
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-31T00:27:24.418402+00:00"
|
||||
question: "отлично, как мне подключиться к этой бд через dbeaver?"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["PostgreSQL-сервис Docker Compose", "Docker Compose инфраструктура"]
|
||||
---
|
||||
|
||||
# Q: отлично, как мне подключиться к этой бд через dbeaver?
|
||||
|
||||
## Answer
|
||||
|
||||
Expanded from original query via vocab: [postgres, database, tenant, compose, docker, connection, config, service]. Локальный PostgreSQL-сервис Docker Compose сейчас не публикует порт на хост, поэтому DBeaver не сможет подключиться к localhost без изменения compose.yaml. Нужно добавить сервису db привязку 127.0.0.1:15432:5432, выполнить docker compose up -d db, затем создать PostgreSQL-подключение: host localhost, port 15432, database POSTGRES_DB, username POSTGRES_USER, password POSTGRES_PASSWORD из корневого .env, SSL отключён. Контейнерное имя db применимо только внутри Docker-сети. Каждая tenant-БД подключается отдельным именем базы.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- PostgreSQL-сервис Docker Compose
|
||||
- Docker Compose инфраструктура
|
||||
Reference in New Issue
Block a user