目前我有 3 张 table 。客户表、产品表和购物车表。 customer 表以 cid 作为主键。 产品表以 pid 作为主键。
现在我想将产品添加到购物车表。 我还想知道哪个客户正在添加该产品。
如果我将 cid 和 pid 放入购物车表中,而客户订购了不止一种产品,则会出现冗余。
我如何创建一个关联所有这些信息的表格? 即谁在订购、订购哪种产品以及数量。
我的表格
产品表( 产品 ID, 年级, 属性(property), 状态, 包装, 包装重量, 成本, 描述, );
客户表( 客户 ID, 姓名, 公司, 地址, 电话, 电子邮件, 国家, 城市, );
购物车表( 购物车 ID, 产品 ID, 客户 ID, 数量, 总成本, );
最佳答案
为了避免冗余,您应该添加另一个表 Cart_Positions,其中包含所有订购的产品,而购物车仅包含客户 ID。
Cart_Table( Cart_id, Cust_id, ... );
Cart_Positions_Table( Cart_Positons_id, Cart_id, Prod_id, 数量, ...);
(主键粗体,外键斜体)
编辑: 当试图避免裁员时,您还应该考虑已有的“总成本” - 这可以通过使用产品价格和数量轻松计算出来。另一方面,如果您允许折扣但不将其存储在订单中(这不是一个好主意),则总成本列将是必要的。
关于mysql - 规范在线购物车表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38873770/