规范化在线购物车表

时间:2016-08-10 12:42:27

标签: mysql database rdbms

目前我有3张桌子。客户表,产品表和购物车表。 customer表将cid作为主键。 product table有pid作为主键。

现在我想将产品添加到购物车表。 我也想知道哪个客户正在添加该产品。

如果我将cid和pid带入购物车表,而客户订购了多个产品,则会发生冗余。

我如何创建一个与所有这些信息相关的表格? 这是谁订购,哪个产品和数量。

MyTables

Product_Table( PROD_ID, 年级, 房地产, 州, PKGS, Wpkg, 成本, 说明, );

CUSTOMER_TABLE( CUST_ID, CNAME, 公司, 地址, 电话, 电子邮件, 国家, 市, );

Cart_Table( Cart_id, PROD_ID, CUST_ID, 数量, 总成本, );

1 个答案:

答案 0 :(得分:0)

为避免裁员,您应该添加另一个包含所有订购产品的表Cart_Positions,而购物车只包含客户ID。

Cart_Table( Cart_id Cust_id ,...);
Cart_Positions_Table( Cart_Positons_id Cart_id Prod_id ,数量,......);

粗体中的主键,外键斜体

编辑: 当试图避免冗余时,你也应该考虑" TotalCost"你已经拥有 - 这可以通过使用产品价格和数量轻松计算。另一方面,如果您允许折扣但不将其存储在订单中(这不是一个好主意),则总成本列将是必要的。