我正在构建一个电子商务网站,我遇到了一个数据库设计问题。
假设最终用户位于订单下方。
+---------+--------+------+--------+
| | Tomato | Rice | Maggie |
+---------+--------+------+--------+
| Order 1 | 1 KG | | |
| Order 2 | 2 KG | 5 KG | 100 Gm |
| Order 3 | 2 KG | 1 KG | |
+---------+--------+------+--------+
我必须合并以上订单并制作PO,如下所示。
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
但是使用上述设计我无法跟踪与PO相关的订单,请您建议更好的设计。
此致 和Manish
答案 0 :(得分:0)
您需要认识到订单(来自客户)和采购订单(来自供应商)都有一个或多个商品。您的订单表显示为非标准化状态。它应该标准化为订单标题和订单商品。
同样,假设您的供应商一次接受多个项目的订单,通过向供应商提供PO来获取库存以填充客户订单也应该被构造为标题和项目。
此外,您的购买者可能会批量购买并立即填写许多订单详细信息,以享受批量折扣或节省运费。如果是这种情况,那么您可能希望将ORDER_ITEM
与PO_ITEM
之间的直接关系替换为交叉实体,例如PO_ITEM_DETAIL
。
考虑以下ERD:
顺便说一句,我认为以这种直接方式将客户订单与采购订单联系起来是一种不寻常的要求。如果您的业务基于“掉货”模式,这将是有意义的。另一方面,如果您从自己的库存中填写订单,那么客户订单和采购订单之间的链接在大多数情况下都不一定适用。