Змоделювала морську предметну галузь — фахівців, компанії, судна, вакансії, відгуки та решту — у 348 нормалізованих таблицях у межах 34 схем PostgreSQL, з довідниками SMALLINT та ключами UUID v7.
Роботу виконано: 2025
348 таблиць моделюють морську предметну галузь
Ситуація. Серцем платформи є щільний морський домен — фахівці, компанії, судна, вакансії, відгуки, — і всі ці сутності постійно посилаються одна на одну. Фахівець ходить у рейси на суднах, працює в компаніях, залишає відгуки; компанія володіє суднами й публікує вакансії. Майже кожна функція — це запит через усю цю мережу зв’язків, тож від того, наскільки добре змодельовані дані, залежить, наскільки добре працює більша частина застосунку і наскільки безболісно його розширювати.
Завдання. Цей домен потрібно було змоделювати так, щоб він лишався швидким і зберігав цілісність, а додавання наступного типу сутності не перетворювалося на боротьбу зі схемою.
Дія. Дані організовано в нормалізовані схеми PostgreSQL, згруповані за доменами, — на сьогодні це 348 таблиць у 34 схемах. Численні дрібні стабільні переліки — статуси, типи, категорії — стали довідковими таблицями SMALLINT: так рядки лишаються компактними, а джойни дешевими, і не треба всюди зберігати текстові коди. Сутності отримують первинні ключі UUID v7, тож вони глобально унікальні, але в індексі все одно впорядковані за часом. Усюди діє одна угода про іменування — назви таблиць у множині всередині схем із назвами в однині, — і застосовують її без винятків, що до того ж дає змогу уникнути багатьох конфліктів із зарезервованими словами. А зв’язки тримаються на справжніх зовнішніх ключах і обмеженнях, тож за цілісність відповідає база даних, а не застосунок, який мав би про неї пам’ятати.
Результат. Вийшла послідовна й швидка модель даних, з якою передбачувано працювати, бо ті самі правила діють усюди — особливих випадків, які треба запам’ятовувати, немає. Нова функція зазвичай означає розширення схеми в напрямку, який уже задає її будова, а не всупереч йому, і лише завдяки цьому 34 схеми — це структура, а не хаотичне розростання. Це фундамент, на якому стоїть решта платформи.
Читати далі: Побудувала власну продуктову аналітику в PostgreSQL — 47 функцій над партиціонованими таблицями подій, які самі себе очищають, — псевдонімізовану за допомогою солі, що регулярно змінюється, і ввімкнену лише за згодою відвідувача. Або перегляньте повне портфоліо.
Одна частина довшого переліку — і він увесь на цьому сайті.
Кожен запис написано однаково: ситуація, завдання, що ми зробили і що змінилося.