我想知道为订单管理系统设计数据库的最佳实践。我有一个订单表和orderitems表。 我目前的设计如下。
Order table orderid int primary key totalprice int orderstatus int Order Items table orderitemid int primary key orderid int foreign key productid int quantity int
orderid是这里的外键。 在订单商品表中订购多个订单商品。 它是一对多的关系。
这是设计表格的最佳方法还是应该使用以下设计
Order table id int primary key orderid int orderitemid int foreign key totalprice int orderstatus int Order Items table orderitemid int primary key productid int quantity int
请描述使用这两种设计的优缺点。 如果其他一些更好的设计是可能的,请告诉我。
答案 0 :(得分:2)
选项1是唯一合理的选择
由于1 Order
有多个Order Items
,orderId
在Orders
中保留一次,在Order Items
中保留多次。
使用选项2,这种关系是可能的,但是你会不必要地复制数据,因为你不能在OrderItemId
中对一条记录有很多Order
个值。
这是基本的标准化。