# Змоделювала морську предметну галузь — фахівців, компанії, судна, вакансії, відгуки та решту — у 348 нормалізованих таблицях у межах 34 схем PostgreSQL, з довідниками SMALLINT та ключами UUID v7.

2025

**Ситуація.** Серцем платформи є щільний морський домен — фахівці, компанії, судна, вакансії, відгуки, — і всі ці сутності постійно посилаються одна на одну. Фахівець ходить у рейси на суднах, працює в компаніях, залишає відгуки; компанія володіє суднами й публікує вакансії. Майже кожна функція — це запит через усю цю мережу зв'язків, тож від того, наскільки добре змодельовані дані, залежить, наскільки добре працює більша частина застосунку і наскільки безболісно його розширювати.

**Завдання.** Цей домен потрібно було змоделювати так, щоб він лишався швидким і зберігав цілісність, а додавання наступного типу сутності не перетворювалося на боротьбу зі схемою.

**Дія.** Дані організовано в нормалізовані схеми PostgreSQL, згруповані за доменами, — на сьогодні це 348 таблиць у 34 схемах. Численні дрібні стабільні переліки — статуси, типи, категорії — стали довідковими таблицями SMALLINT: так рядки лишаються компактними, а джойни дешевими, і не треба всюди зберігати текстові коди. Сутності отримують первинні ключі UUID v7, тож вони глобально унікальні, але в індексі все одно впорядковані за часом. Усюди діє одна угода про іменування — назви таблиць у множині всередині схем із назвами в однині, — і застосовують її без винятків, що до того ж дає змогу уникнути багатьох конфліктів із зарезервованими словами. А зв'язки тримаються на справжніх зовнішніх ключах і обмеженнях, тож за цілісність відповідає база даних, а не застосунок, який мав би про неї пам'ятати.

**Результат.** Вийшла послідовна й швидка модель даних, з якою передбачувано працювати, бо ті самі правила діють усюди — особливих випадків, які треба запам'ятовувати, немає. Нова функція зазвичай означає розширення схеми в напрямку, який уже задає її будова, а не всупереч йому, і лише завдяки цьому 34 схеми — це структура, а не хаотичне розростання. Це фундамент, на якому стоїть решта платформи.

---

- Роль: Інженер даних
- Категорії: [Архітектура платформи](https://data.engineer.company/uk/categories/platform-architecture/), [Бази даних](https://data.engineer.company/uk/categories/databases/), [PostgreSQL](https://data.engineer.company/uk/categories/postgresql/), [SQL](https://data.engineer.company/uk/categories/sql/), [Інженерія даних](https://data.engineer.company/uk/categories/data-engineering/), [Управління даними](https://data.engineer.company/uk/categories/data-governance/), [Оптимізація продуктивності](https://data.engineer.company/uk/categories/performance/)
- Послуги: [Архітектура платформи та рішень](https://data.engineer.company/uk/services/platform-architecture/), [Проєктування та моделювання баз даних](https://data.engineer.company/uk/services/database-design/), [Data Governance та якість даних](https://data.engineer.company/uk/services/data-governance/)

<https://data.engineer.company/uk/portfolio/modeled-the-maritime-domain-professionals-companies-ships-jobs-67/>
