Я хотел бы знать, как выбирать между различными решениями для проектирования баз данных?
Полагаю, лучше всего описать мой вопрос, приведя пример.
Допустим, мы хотим создать базу данных для автомобилей. ,Каждый автомобиль имеет ряд свойств, которые мы хотим сохранить. У каждого автомобиля есть множество свойств, таких как:
Производитель,
Модель,
Цвет,
Возраст, ...
Но есть и свойства, которыетолько что найденный в подкатегории или в небольшой группе автомобилей, таких как:
Багажник,
Багажник на крышу,
Багажник,
4-х приводной, ...
Некоторые свойстваможет даже относиться только к менее чем 5% автомобилей. Существуют различные решения для решения этой проблемы.
- Первый - сбросить все в одну таблицу. Конечно нормализовано! (не упомянуто ниже)
- Вторым решением будет создание таблицы со свойствами, которые есть у каждого автомобиля. Добавление таблицы CartoDrawbar ... для установления связи m: m между редкими Свойствами и автомобилями.
- Третья возможность, которую я могу себе представить, - это создание таблиц для групп автомобилей, таких как внедорожники, Notchback, Truck, Compact. Пикап ... для группировки автомобилей с похожими свойствами. (Мои редкие Свойства не были лучшим выбором, чтобы походить на это).
- Последняя идея - создать таблицу со всеми общими свойствами и добавить столбец Char или Text, чтобы заполнить все, что нужно.
Но какое решение является лучшим или подходящим? Я забыл важный? Есть ли различия в скорости, размере файла или ... для рассмотрения? Или какие-то пороги, когда выбирать то или иное решение. У меня есть личный фаворит, но я не хочу на вас влиять, и у меня недостаточно знаний о реляционных базах данных и / или управляющем программном обеспечении, чтобы судить о скорости или размере файла таблицы.