Задать вопрос

Как верно проектировать базу данных?

Здравствуйте.
Вопрос в следующем: есть проект, который содержит достаточно много таблиц (не сотни, конечно, десятки, но работать уже не комфортно). Периодически встают задачи, которые требуют добавления новых таблицы или колонок и т.д. Существует дилема (для меня) создавать нормализованные таблицы или нет. Просто, если да, тогда это еще добавится 3-4 таблицы, а если нет, тогда всего одна, или вообще все данные в одну колонку запихнуть.
Хотелось бы узнать субъективное (личное мнение) разработчиков, потому что ответ на этот вопрос обычно звучит следующим образом - смотрите сами, в зависимости от вашего проекта, опыта и т.д.
Спасибо.
  • Вопрос задан
  • 562 просмотра
Подписаться 3 Оценить Комментировать
Решение пользователя lega К ответам на вопрос (5)
@lega
или вообще все данные в одну колонку запихнуть.

На клиенте "объект" можно распарсить из любого вида, даже если это одна колонка сжатых данных в gzip.

Вопрос в индексах, вам нужно хранить данные так, что-бы можно было сделать на них индексы, и любые запросы выполнялись мгновенно.
В итоге если вам надо добавить например список телефонов к элементу таблицы, и вам не нужно делать по ним поиск, проверку уникальности, группировки и т.п. то нет смысла плодить отдельную таблицу под них, удобнее использовать json или массив. (хотя в некоторых БД уникальность и поиск можно сделать и для json/массива).

В итоге будет быстрее работать, т.к. нет JOIN, экономия RAM т.к. нет доп. индекса для JOIN, да и вообще удобней т.к. меньше сущностей.
Ответ написан
Комментировать