目前我有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, 数量, 总成本, );
答案 0 :(得分:0)
为避免裁员,您应该添加另一个包含所有订购产品的表Cart_Positions,而购物车只包含客户ID。
Cart_Table( Cart_id , Cust_id ,...);
Cart_Positions_Table( Cart_Positons_id , Cart_id , Prod_id ,数量,......);
(粗体中的主键,外键斜体)
编辑: 当试图避免冗余时,你也应该考虑" TotalCost"你已经拥有 - 这可以通过使用产品价格和数量轻松计算。另一方面,如果您允许折扣但不将其存储在订单中(这不是一个好主意),则总成本列将是必要的。