Я разработал базу данных для веб-приложения, которое я создаю «по книге». То есть, у меня есть:Денормализация: Сколько стоит?
- создало ER диаграммы, содержащие объекты для приложения, атрибутов и отношения
- Переведенных диаграмму ER и схемы
- Переведенных схему, чтобы «нет-схемы "для моделирования базы данных (база данных - это база данных Cassandra (NoSQL)).
Все идет хорошо (до сих пор). Раньше я денормализован и получаю отличные результаты, и теперь я использую часть приложения, которое будет использовать данные, которые еще не были денормализованы. Выполнение этого для этой конкретной части, как я предсказываю, значительно повысит производительность (считая из 1 Column_Family («таблица» в реляционном мире) вместо 7).
Однако, я боюсь, что я слишком денормализую. Если бы я должен был сделать это для рассматриваемой части, это в значительной степени уменьшило бы количество столбцов Column_Family/table в моем приложении примерно на 20%, и из-за того, что большая часть моей денормализованной базы данных почему-то заставляла меня нервничать.
Если приложение окажется достаточно успешным, что я могу получить конструктора баз данных или администратора на борту, я бы хотел, чтобы он мог определить, что денормализация, которую я выполняю, необходима для производительность я ищу (в лучшем случае) или, по крайней мере, не вредный (худший случай).
Есть ли определенные вещи, на которые я должен обратить внимание при принятии решений денормализации, которые могут указывать, будет ли это делать плохо, или всегда ли это связано со скоростью и ремонтопригодностью?
«Нормализовать, пока не будет больно, Denormalise, пока это не сработает» - anon. –
@MitchWheat: Поиск этой цитаты привел меня к: http://stackoverflow.com/questions/47711/how-do-you-determine-how-far-to-normalize-a-database И http: // www. codinghorror.com/blog/2008/07/maybe-normalizing-isnt-normal.html. Оба были полезны. Благодаря! – Kevin