База данных, нормализующая, я чувствую, является формой искусства.
Вы не хотите чрезмерно нормализовать вашу базу данных, потому что у вас будет слишком много таблиц, и это приведет к тому, что ваши запросы даже к простым объектам будут дольше, чем должны.
Хорошее практическое правило, которому я следую, - нормализовать одну и ту же информацию, повторяемую снова и снова.
Например, если вы создаете приложение для управления контактами, имеет смысл иметь адрес (улица, город, штат, почтовый индекс и т. Д.) В качестве собственной таблицы.
Однако, если у вас есть только 2 типа контактов, Деловые или личные, нужна ли вам таблица типов контактов, если вы знаете, что у вас будет только 2? Для меня нет.
Я бы начал с выяснения необходимых вам типов данных. Используйте программу моделирования, чтобы помочь, как Visio. Вы не хотите начинать с ненормализованной базы данных, потому что в конечном итоге вы нормализуетесь. Начните с помещения объектов в логические группировки, поскольку повторяющиеся данные переносят эти данные в новую таблицу. Я бы продолжил этот процесс, пока вы не почувствуете, что создали базу данных.
Пусть тестирование скажет вам, если вам нужно объединить таблицы. Хорошо написанный запрос может покрыть любую чрезмерную нормализацию.