Почему нормализация БД — это чистая логика, а не бюрократия
На любом ongoing-проекте требования меняются постоянно. Сегодня вы добавили одну колонку, завтра еще две, а через месяц обнаружили в базе «божественную таблицу». Это такой огромный монстр, в котором хранится вообще всё: от данных заказа до цвета шнурков в выбранном товаре и домашнего адреса троюродной тети клиента.
Такой накопленный технический долг кажется удобным только на первый взгляд — ведь «всё под рукой». На деле это превращается в архитектурный ад.
Шкаф из IKEA и лишний оверхед
Когда данные свалены в одну кучу, поиск превращается в перебор хлама. Представь огромный шкаф, где одежда просто набросана горой. Вроде бы всё в одном месте, но найти конкретные носки невозможно. Чтобы достать одну вещь, тебе приходится вываливать всё содержимое на пол.
В разработке это работает так же: вместо того чтобы сходить в компактную таблицу и забрать нужный лог или профиль, бэкэнд вытягивает из базы гигантскую сущность со всеми потрохами. Вы нагружаете память, гоняете по сети лишние мегабайты и потом мучительно фильтруете этот мусор в коде.
Правильная архитектура — это когда внутри шкафа есть отдельные ящики: для маек, для носков, для белья. Ты точно знаешь, куда постучаться, чтобы получить конкретный тип данных.
Принцип Single Source of Truth
Вторая беда денормализованных данных — «раздвоение личности» системы. Это происходит, когда одна и та же смысловая единица (например, имя пользователя) хранится строкой в разных местах: в профиле, в заказах, в тикетах поддержки.
Проблема всплывает в тот момент, когда юзер меняет имя. В профиле вы его обновили, а в тикетах остался старый слепок. Поддержка обращается к клиенту по старому имени, юзер злится, вы получаете плохой отзыв.
Нормализация внедряет принцип Single Source of Truth (SSoT). Истина должна жить строго в одном месте. Если у тебя одни и те же данные размазаны по разным таблицам, будь уверен — рано или поздно один из источников начнет врать.
Экономия на масштабе
Помимо логического порядка, нормализация — это вопрос стоимости инфраструктуры. Представь адрес доставки. Это строка символов на 200. Если ты пишешь её в каждую строку каждого заказа, то при миллионе заказов ты хранишь гигабайты дублирующихся букв.
Если же вынести адрес в отдельную таблицу и ссылаться на него через компактный ID-шник, на жестком диске освобождаются сотни гигабайт. Нормализация — это не просто наведение красоты в схеме, это эволюционный процесс, который делает систему производительной и дешевой в поддержке.
Ставь 🔥, если хочешь чтобы я на пальцах объяснил как делать нормализацию базы данных.
А если остались вопросы или что-то звучит слишком абстрактно — пиши в комменты, обязательно разберем!
10МДК | ВЕБМастер
Post #145
306

- 🔥 9
- ❤ 1