我什麼模型,可以沿着這些路線:
create table dbo.Type
(
id int not null identity(1,1) primary key ,
)
create table dbo.TypeAttribute
(
typeId int not null foreign key references dbo.Type(id) ,
id int not null identity(1,1) unique ,
primary key (typeId , id) ,
)
create table dbo.Product
(
id int not null identity(1,1) unique ,
typeId int not null foreign key references dbo.Type(id) ,
primary key (id , typeId) ,
)
create table dbo.ProductAttribute
(
productId int not null ,
typeId int not null ,
attributeId int not null ,
primary key (productId , typeId , attributeId) ,
foreign key (productId , typeId ) references dbo.Product (id , typeId) ,
foreign key (typeId , attributeId) references dbo.TypeAttribute (typeId , id ) ,
)
- 我們有一組不同的
Types
,產品的父類。
- 每個這樣的
Type
具有TypeAttributes
的某個數字,該特定類型的項目的描述性屬性。
- 我們有一個
Products
,其中每個被分配到一個,並且只有一個Type
。
- 我們有一個關聯實體
ProductAttribute
,它列舉了每個獨特產品擁有的屬性,這些屬性來自該產品的可用屬性Type
。
我不知道子類(項鍊,戒指,N_Diamond等)是否具有屬性/字段本身,因爲這可能是「泛化/專業化」或「超類/子類」的情況,否則您只需創建參考作爲下面已經給出的答案表示。 – Edper