Я разработал базу данных для веб-приложения, которое создаю «по книге». То есть у меня:
- Создана диаграмма E-R, содержащая сущности, атрибуты и отношения приложения.
- Переведена диаграмма E-R в схему
- Преобразовал схему в форму без схемы для моделирования базы данных (база данных - это база данных Cassandra (NoSQL)).
Все идет хорошо (пока). Раньше я денормализовал с отличными результатами, и сейчас я реализую часть приложения, которая будет использовать данные, которые еще не были денормализованы. Я предсказываю, что это существенно повысит производительность (чтение из 1 Column_Family («таблица» в реляционном мире) вместо 7).
Однако я боюсь, что могу слишком сильно денормализовать. Если бы я сделал это для рассматриваемой части, это бы в значительной степени уменьшило количество Column_Family / table в моем приложении примерно на 20%, а денормализованная часть моей базы данных по какой-то причине заставляет меня нервничать.
Если приложение окажется достаточно успешным, и я смогу привлечь к работе дизайнера или администратора базы данных, я бы хотел, чтобы он определил, что выполняемая мной денормализация необходима для производительности, которой я занимаюсь. ищущие (в лучшем случае) или, по крайней мере, не вредные (в худшем случае).
Есть ли конкретные вещи, на которые я должен обратить внимание при принятии решений по денормализации, которые могут указывать на то, будет ли это плохо, или это всегда сводится к скорости против ремонтопригодности?