Проектирование базы данных
Приёмная комиссия вуза обрабатывала заявления в гугл-таблицах, пока их не запретили — персональные данные нельзя держать вне инфраструктуры вуза. Понадобилась своя система, и базу под неё проектировал я.
Сложность в том, что у каждого отдела — операторы, колл-центр, архив, платные услуги — свой процесс обработки, и состав отделов со временем меняется. Поэтому схему собрал гибкой: базовые сущности импортируются из учётной системы вуза (абитуриенты, документы, заявления, конкурсы), а процессы, проверки и права живут в метаданных — настраиваются из БД, а не зашиты в код. Начальник отдела собирает шаблон проверки сам, без разработчика. Права — гибрид ролей и связей на объектах (RBAC + ReBAC через OpenFGA), чтобы отделы видели чужие данные только там, где положено. Плюс аудит всех действий, полиморфные задачи с автораспределением и денормализованные колонки под аналитику.
Собрал полную схему с DDL по 16+ модулям и пять ER-диаграмм в StarUML. По ней команда сразу начинает разработку, а структура тянет рост без болезненных переделок.