Database design DB设计将订单链接到PO

Database design DB设计将订单链接到PO,database-design,Database Design,一、 我正在建设一个电子商务网站,我被一个数据库设计问题困住了 假设最终用户下订单 +---------+--------+------+--------+ | | Tomato | Rice | Maggie | +---------+--------+------+--------+ | Order 1 | 1 KG | | | | Order 2 | 2 KG | 5 KG | 100 Gm | | Order 3 | 2 KG | 1

一、 我正在建设一个电子商务网站,我被一个数据库设计问题困住了

假设最终用户下订单

+---------+--------+------+--------+
|         | Tomato | Rice | Maggie |
+---------+--------+------+--------+
| Order 1 | 1 KG   |      |        |
| Order 2 | 2 KG   | 5 KG | 100 Gm |
| Order 3 | 2 KG   | 1 KG |        |
+---------+--------+------+--------+
我必须合并以上订单,并作出采购订单,如下所示

PoID    Product Quantity    WSName  Cost    Status      OrderDate   
1       Tomato  5KG         Shop1   100     Confirmed   13/9/2014   
2       Rice    6KG         Stock   600     Confirmed   13/9/2014   
3       Maggi   100GM       Shop1   40      Waiting     13/9/2014   
但使用上述设计,我无法跟踪订单相关的订单,请您建议一个更好的设计

问候
Manish

您需要认识到(来自客户的)订单和(给供应商的)采购订单都有一个或多个项目。订单表显示为非规范化状态。它应该规范化为订单标题和订单项

类似地,如果您的供应商一次接受多个项目的订单,则通过向供应商发出POs来获取库存以满足客户订单,也应将其结构化为标题和项目

此外,您的买家可能会批量购买,并一次填写许多订单详细信息,以享受批量折扣或节省运费。如果是这种情况,那么您可能希望用交叉实体(如
PO\u ITEM\u DETAIL
)替换从
ORDER\u ITEM
PO\u ITEM
的直接关系

考虑以下ERD:


顺便说一下,我认为把客户订单与订单直接联系起来是一个不寻常的要求。如果您的业务基于“直运”模式,这将是有意义的。另一方面,如果您从自己的库存中填写订单,那么客户订单和采购订单之间的链接在大多数情况下并不一定适用。

我必须考虑一下,不过谢谢您的建议。。事实上,我是一家初创公司,正在为仓库和存货购买空间,我真的不知道客户是否会不符合我目前的预算。。我已经收到了整个Saler的订单,并交付给最终用户,至少现在,我可能会考虑建立一个仓库。