Database design 我如何规范化这个表
如何规范化下表:Database design 我如何规范化这个表,database-design,Database Design,如何规范化下表: Table Order Detail: ------------------- Order# Item# Desc ShipDate1 Qty1 ShipDate2 Qty2 ShipDate3 Qty3 ShipDate4 Qty4 ShipDate5 Qty5 .... ShipDate20 Qty20 您需要有三个表:Item、Order和OrderDetail: OrderDetail: OrderId, ItemId, Quantity, ShipmentDate
Table Order Detail:
-------------------
Order#
Item#
Desc
ShipDate1
Qty1
ShipDate2
Qty2
ShipDate3
Qty3
ShipDate4
Qty4
ShipDate5
Qty5
....
ShipDate20
Qty20
您需要有三个表:
Item
、Order
和OrderDetail
:
OrderDetail: OrderId, ItemId, Quantity, ShipmentDate
Order: Id, ...
Item: Id, Desc, ...
更好的方法是将订单详细信息与装运详细信息分开:
OrderDetail: Id, OrderId, ItemId, Quantity
Order: Id, ...
Item: Id, Desc, ...
OrderShipment: Id, OrderDetailId, ShipmentDate, Quantity
OrderDetail.Id
是表的代理键。它在orderShipping.OrderDetailId
字段中再次使用。我在ordershipping
表中包含了Quantity
,因此您可以支持部分订单履行
可通过连接OrderDetail
和item
表找到项目说明。您可以通过加入order
表来获取订单标题信息
在这种设计中,您可能有20条记录,而不是那么多列:
OrderId ItemId Quantity
10 123 5
10 489 20
10 238 39
您需要有三个表:
Item
、Order
和OrderDetail
:
OrderDetail: OrderId, ItemId, Quantity, ShipmentDate
Order: Id, ...
Item: Id, Desc, ...
更好的方法是将订单详细信息与装运详细信息分开:
OrderDetail: Id, OrderId, ItemId, Quantity
Order: Id, ...
Item: Id, Desc, ...
OrderShipment: Id, OrderDetailId, ShipmentDate, Quantity
OrderDetail.Id
是表的代理键。它在orderShipping.OrderDetailId
字段中再次使用。我在ordershipping
表中包含了Quantity
,因此您可以支持部分订单履行
可通过连接OrderDetail
和item
表找到项目说明。您可以通过加入order
表来获取订单标题信息
在这种设计中,您可能有20条记录,而不是那么多列:
OrderId ItemId Quantity
10 123 5
10 489 20
10 238 39
恶心的定义是一个开始。我会为订单详细信息添加一个Id,以防同一项目需要在订单上出现多次(例如,为了适应价格差异、交付选项、雕刻等)
我还发现这个问题有点模棱两可,因为数量是重复的,但项目不是。我会为订单详细信息添加一个Id,以防同一项目需要在订单上出现多次(例如,为了适应价格差异、交付选项、雕刻等)
我还发现这个问题有点模棱两可,因为数量是重复的,但项目不是。Qty1、Qty2、Qty3字段代表什么?@LiquiorVicar S/B针对给定订单号订购的每个项目的数量。@是的,但他有一个项目id和二十个数量字段?更不用说正常化了,这根本不起作用。我想知道这里是否发生了其他事情……Qty1、Qty2、Qty3字段代表什么?@LiqorVicar S/B给定订单号下的每件商品的订购数量。@是的,但他有一个商品id和二十个数量字段?更不用说正常化了,这根本不起作用。我想知道这里是否发生了其他事情…@Bruno答案仍然相同,只是我对装运日期进行了小编辑。@Bruno答案仍然相同,只是我对装运日期进行了小编辑。