Мы начинаем новый проект, где нам нужно хранить продукт и многие атрибуты продукта в базе данных. Стек технологии - это MS SQL 2008 и Entity Framework 4.0/LINQ для доступа к данным.
Продукты (и таблица продуктов) довольно просты (SKU, производитель, цена и т.д.). Однако есть также множество атрибутов для хранения с каждым продуктом (подумайте о промышленных виджетах). Они могут варьироваться от цвета до сертификации (ов) до размера трубы. Каждый продукт может иметь разные атрибуты, а некоторые могут иметь кратность одного и того же атрибута (пример: сертификаты).
Текущее предложение состоит в том, что в основном мы будем иметь таблицу пар имя/значение, а FK - идентификатор продукта в каждой строке.
Пример атрибутов Таблица может выглядеть так:
ProdID AttributeName AttributeValue
123 Color Blue
123 FittingSize 1.25
123 Certification AS1111
123 Certification EE2212
123 Certification FM.3
456 Pipe 11
678 Color Red
999 Certification AE1111
...
Примечание. Имя атрибута, скорее всего, будет получено из таблицы или перечисления.
Итак, главный вопрос здесь: Является ли это лучшей моделью для выполнения чего-то подобного? Каким будет производительность? Запросы будут основаны на JOIN таблицы продуктов и атрибутов и, как правило, нужно много WHERE для фильтрации по определенным атрибутам - наиболее распространенным поиском будет поиск продукта на основе набора известных/желаемых атрибутов.
Если у кого-то есть предложения или лучший шаблон для данных этого типа, пожалуйста, дайте мне знать.
Спасибо! Ред