Здравствуйте, ZAMUNDA, Вы писали:
ZAM>Здравствуйте, strelochnik, Вы писали:
S>>Каждую категорию товара можно охарактеризовать общими для всех товаров свойствами (id, название, изображение, цена...), и свойствами, индивидуальными для каждой категории
ZAM>Абсолютно такую же задачу решаю сейчас, хотя намного больше видов объектов.
ZAM>Классика:
ZAM>Products(ProductID[PK],<необязательно> ProdTypeID(FK:ProductTypes), Name, Price, Picture)
ZAM>ProductsTVAttr(ProductID[PK,FK:Products), ScreenSize, ScanningFreq)
ZAM>ProductsCellPhoneAttr(ProductID[PK,FK:Products), HasBT, HasCamera, ColorDepth)
ZAM><необязательно>
ZAM>ProductTypes(ProdTypeID[PK], Name)
ZAM>Вытаскивать:
ZAM>ZAM>SELECT *
ZAM>FROM
ZAM>Products as p
ZAM>INNER JOIN
ZAM>ProductsTVAttribs as ptv
ZAM>ON ptv.ProductID = p.ProductID
ZAM>
ZAM>Если важно, чтоб в телевон не попали атрибуты телевизора, то TypeID добавляешь во все таблицы и ключём будет (ProductID, ProdTypeID) а в таблицах Products[...]Attr делаешь на TypeID ограничение.
Такая структура неудобна для практического использования, потому что для каждого нового типа товаров нужно создавать отдельную таблицу.