Re[2]: вопрос по проектированию
От: Flying Dutchman Украина  
Дата: 13.10.09 09:41
Оценка:
Здравствуйте, 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 ограничение.


Такая структура неудобна для практического использования, потому что для каждого нового типа товаров нужно создавать отдельную таблицу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.