Вы сломали свои связи: почему вам нужны внешние и суррогатные ключи
Если ваша база данных похожа на склад забытых отношений — пора вспомнить про внешние ключи.

Разработчики часто думают, что реляционная база данных нужна им для связей между данными. Но на практике многие просто накидывают таблицы, как носки в ящик, и удивляются, почему всё тормозит. Автор статьи утверждает: если вы не используете внешние и суррогатные ключи, вы уже сломали свои отношения (с базой данных).
Почему ключи — это не просто формальность
Внешние ключи обеспечивают ссылочную целостность — они не дают вам случайно создать сироту, который будет маячить в таблице без пары. Суррогатные ключи (например, автоинкрементный ID) избавляют от головной боли, когда бизнес-ключ меняется — а такое бывает чаще, чем хочется. Без них вы рискуете получить аномалии, как в плохом сериале: то данные пропадут, то дубликаты вылезут.
Документо-ориентированный подход — не панацея
Статья бьёт по больному: многие переходят на NoSQL, думая, что это решит проблемы с отношениями. Но на самом деле они просто переносят логику связей в код приложения, размазывая её как масло по бутерброду. В итоге получаем велосипед с квадратными колёсами — работает, но ехать больно.
Комментарий студии METABYTE: Мы сами не раз видели проекты, где забытые ключи превращали базу в подобие макаронного монстра. Если ваши данные начинают жить своей жизнью — пора наводить порядок, пока они не сбежали в продакшен.
СЛЕДУЮЩИЙ ШАГ
Понравилось как мыслим?
Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.