У меня вопрос о дизайне и производительности БД.Лучшая производительность для дизайна SQL DB?
Представьте себе следующий сценарий:
У меня есть Product
таблицы, каждая запись продуктов может иметь разный цвет, разный вес и другой тип. когда я хочу создать свою базу данных у меня есть 2 пути:
Я могу конструировать 3 таблицы, а
Productcolor
таблицу сProductID
иColor
колонн, затем один дляProductSize
сProductID
, колонн весом, иProductType
стол сProductID
иType
. И повторите один продукт с разными цветами, масками и типами. и используйте объединение, чтобы иметь общие свойства.У меня может быть цвет, вес, столбцы типа в таблице
Product
и отдельные значения с помощью разделителя типа «,».
У меня есть несколько таблиц, подобных этому, теперь я хочу знать, есть ли лучшее решение для такого сценария? если нет, у кого лучше производительность в sql и даже в моем проекте asp.net?
# 1 будет почти нормальной нормализацией базы данных, к которой вы должны стремиться - подход № 2 - это уродливый взлом, который вызовет у вас печаль и беспокойство и потеряет производительность снова и снова в течение срока действия вашего приложения ... –
Как многие говорили, разделенное поле, классическая плохая идея, если вы этого не сделаете и никогда не захотите найти продукты с одним или несколькими из этих свойств в sql-запросе. Если бы это было так, тогда вам было бы лучше выбрать вариант NoSQl. –