TGViewer
10 минут до кода 10 минут до кода @ten_minutes_to_code · 228 subscribers
Post #145 306
Почему нормализация БД — это чистая логика, а не бюрократия

На любом ongoing-проекте требования меняются постоянно. Сегодня вы добавили одну колонку, завтра еще две, а через месяц обнаружили в базе «божественную таблицу». Это такой огромный монстр, в котором хранится вообще всё: от данных заказа до цвета шнурков в выбранном товаре и домашнего адреса троюродной тети клиента.

Такой накопленный технический долг кажется удобным только на первый взгляд — ведь «всё под рукой». На деле это превращается в архитектурный ад.

Шкаф из IKEA и лишний оверхед

Когда данные свалены в одну кучу, поиск превращается в перебор хлама. Представь огромный шкаф, где одежда просто набросана горой. Вроде бы всё в одном месте, но найти конкретные носки невозможно. Чтобы достать одну вещь, тебе приходится вываливать всё содержимое на пол.

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

Правильная архитектура — это когда внутри шкафа есть отдельные ящики: для маек, для носков, для белья. Ты точно знаешь, куда постучаться, чтобы получить конкретный тип данных.

Принцип Single Source of Truth

Вторая беда денормализованных данных — «раздвоение личности» системы. Это происходит, когда одна и та же смысловая единица (например, имя пользователя) хранится строкой в разных местах: в профиле, в заказах, в тикетах поддержки.

Проблема всплывает в тот момент, когда юзер меняет имя. В профиле вы его обновили, а в тикетах остался старый слепок. Поддержка обращается к клиенту по старому имени, юзер злится, вы получаете плохой отзыв.

Нормализация внедряет принцип Single Source of Truth (SSoT). Истина должна жить строго в одном месте. Если у тебя одни и те же данные размазаны по разным таблицам, будь уверен — рано или поздно один из источников начнет врать.

Экономия на масштабе

Помимо логического порядка, нормализация — это вопрос стоимости инфраструктуры. Представь адрес доставки. Это строка символов на 200. Если ты пишешь её в каждую строку каждого заказа, то при миллионе заказов ты хранишь гигабайты дублирующихся букв.

Если же вынести адрес в отдельную таблицу и ссылаться на него через компактный ID-шник, на жестком диске освобождаются сотни гигабайт. Нормализация — это не просто наведение красоты в схеме, это эволюционный процесс, который делает систему производительной и дешевой в поддержке.

Ставь 🔥, если хочешь чтобы я на пальцах объяснил как делать нормализацию базы данных.

А если остались вопросы или что-то звучит слишком абстрактно — пиши в комменты, обязательно разберем!

10МДК | ВЕБМастер
  • 🔥 9
  • ❤ 1
More from @ten_minutes_to_code
  1. May 28, 2026Первый сезон получился про путь “от пользователя к инженеру”. Именно эту картину мы весь с…
  2. May 28, 2026Когда я запускал этот канал, у меня была довольно простая идея: писать каждый день коротки…
  3. May 3, 2026🤔 А где новые посты? Сори что вот так пропал без предупреждения, но я думал что справлюсь…
  4. Apr 29, 2026Почему HTTPS не спасет ваши секреты Замочек в адресной строке браузера — это мощное успоко…
  5. Apr 28, 2026Целостность данных против иллюзии атомарности Начинающий разработчик видит базу данных как…
  6. Apr 26, 2026Почему «сделай за меня» убивает в тебе инженера Распространение LLM вскрыло глобальный баг…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →