这是脚本:
create table Customer
(
CustomerId int primary key identity(1,1),
Name nvarchar(64) not null,
LastName nvarchar(256) not null,
Telephone nvarchar(32),
MobilePhone nvarchar(32),
Address nvarchar(256)
)
create table Product
(
ProductId int primary key identity(1,1),
Name nvarchar(64),
Price decimal
)
create table StoreOrder
(
StoreOrderId int primary key identity(1,1),
Date datetime,
CustomerId int foreign key references Customer(CustomerId),
Total decimal
)
create table ProductStoreOrder
(
ProductStoreOrderId int primary key identity(1,1),
StoreOrderId int foreign key references StoreOrder(StoreOrderId),
ProductId int foreign key references Product(ProductId),
Quantity int
)
我对如何处理浇头很困惑。我应该可以在某个地方的数据库中添加浇头,并使用N个浇头创建比萨饼,每个浇头也应该有相关的价格。
我可以创建一个Toppings表并将其与Product关联,但不是每个产品都有一个顶部。例如,面包棒,苏打水,沙拉等。
处理这种情况的最佳方法是什么?此外,到目前为止对数据库设计的任何评论?
感谢您的时间。
答案 0 :(得分:4)
我认为这是利用超级/子类型数据库设计的一个很好的选择。这是一个快速绘图,我相信解决了你现在所关心的问题。这只是基础,您可以随心所欲地填写所需的属性和定价。
答案 1 :(得分:0)
您可以尝试以下内容:
您可以在另一个表中定义产品“模板”,定义类别以及产品是否具有Toppings或其他特殊属性。
答案 2 :(得分:0)
使用@Andy的建议,或在产品表中添加一个布尔值,指示产品是否为顶部。