Как вы определяете, как далеко нормализовать базу данных? - PullRequest
17 голосов
/ 06 сентября 2008

При создании структуры базы данных, какие руководящие указания следует соблюдать или как определить, насколько далеко следует нормализовать базу данных? Должны ли вы создать ненормализованную базу данных и разделить ее на части по мере продвижения проекта? Стоит ли создавать его полностью нормализованным и комбинировать таблицы, необходимые для производительности?

Ответы [ 14 ]

1 голос
/ 07 сентября 2008

Я согласен, что обычно лучше начать с нормализованной БД, а затем денормализовать для решения очень специфических проблем, но я бы, вероятно, начал с Обычная форма Бойса-Кодда вместо 3-й нормальной формы.

0 голосов
/ 03 февраля 2010

Не забудьте Мать всех дебатов по нормализации баз данных в Coding Horror (кратко изложено в блоге о высокой масштабируемости).

0 голосов
/ 17 сентября 2008

Просто попробуйте использовать здравый смысл.

Также некоторые говорят - и я должен с ними согласиться - что, если вы обнаружите, что объединяете 6 (магическое число) таблиц вместе в большинстве ваших запросов - не считая связанных с отчетами - что вы можете подумать о денормализации немного.

0 голосов
/ 06 сентября 2008

Зачастую, если вы нормализуетесь настолько, насколько позволяет вам другое программное обеспечение, все будет в порядке.

Например, при использовании технологии объектно-реляционного отображения у вас будет богатый набор семантики для различных отношений «многие к одному» и «многие ко многим». Под капотом, который обеспечит объединение таблиц с двумя первичными ключами. Хотя относительно редко, истинная нормализация часто дает вам отношения с 3 или более первичными ключами. В таких случаях я предпочитаю придерживаться O / R и прокручивать свой собственный код, чтобы избежать различных аномалий БД.

...