当您在线购物时,将它们添加到购物篮中,当您在购物篮中添加商品后,即可创建订单。从本质上讲,我试图考虑允许将多个项目放入一个订单的最佳方法。这是一个不知道如何将数据存储在Access数据库中的情况。我无法弄清楚应该调用哪些字段。我目前的尝试是:
tblOrders
OrderID (Primary Key)
CustomerID (Foreign Key)
OrderDetailsID
tblOrderDetails
OrderDetailsID
PartID (Foreign Key)
Quantity
This是包含示例数据的第一个表的图像,this是第二个表的示例。我很可能错过了一些令人眼花缭乱的事情。
提前谢谢你。
答案 0 :(得分:1)
我的结构如下:
OrderHeader
ID (Primary Key)
CustomerID (Foreign Key)
OrderDetail
ID (Primary Key)
OrderHeaderID (Foreign Key)
PartID (Foreign Key)
Quantity
tbl
前缀。这只是您可以选择忽略的偏好。OrderDetailID
上的OrderHeader
将无效,因为您无法生成必需的1:M
关系,其中订单可以包含多个明细行。ID
字段作为主键。他们使JOIN
的工作变得更加容易。如果您希望强制执行订单只能使用一次的条件,那么您应该使用列OrderHeaderID
和PartID
上的唯一数据库约束来执行此操作。以下是您评论的示例查询...
SELECT H.ID OrderID, D.PartID, D.Quantity
FROM OrderHeader AS H INNER JOIN
OrderDetail AS D ON H.ID = D.OrderHeaderID
WHERE H.ID = 1234;