我有一个存储所有商品信息及其ID的表。现在我想创建一个包含所有客户的表并记录购买的项目。什么是最好的解决方案?我想如果将它存储起来效率不高:
|customer_id | username | password | boughtproducts |
| 1 | herbert |123 |productid1,pid2...|
你会怎么做?
答案 0 :(得分:3)
处理这种情况的一种更简单的方法如下:
表客户: customer_id |用户名|密码
表产品: product_id | productName | ...
表销售: sale_id | customer_id | product_id |销售时间
这样,使用“销售”表,您将存储每个客户和产品的所有销售额。 “Sales”中的customer_id是“Customer”表中的外键,“Sales”中的product_id是“Product”表中的外键。
我希望这能回答你的问题
答案 1 :(得分:1)
have one Customers Table // store details of the customers
have once Products Table // store details of the products
have one Customers_products Table
|primary_key|customer_id | product_id |
| | 1 | 1 |
| | 1 | 2 |
客户与产品之间存在多对多的关系。一个客户可以购买许多产品,同样一个产品可以被许多客户购买。因此,实现多对多关系的标准方法是再增加一个表,这个新表将包含来自两个表的主键。
主键可以是自动增加的,也可以是两个外键的composite key
。
答案 2 :(得分:1)
网上有很多这种模式的例子。
但总的来说,你的数据库可能采取......的形式。
Customer
表:一个客户可以有很多......
Order
表:一个订单可以有很多..
OrderLine
表:一个订单行与一个订单相关......
Product
表。 (一个Product
将与may OrderLine
s)
因此OrderLine
将包含ProductID
和Quantity
。然后,您可以JOIN
表格并制作完整的Order
。
答案 3 :(得分:1)
我实际上会再增加两张桌子。一个用于客户,然后一个用于他们购买的产品,如此:
客户
客户ID |用户名|密码
购买:
客户id |的ProductID |日期|等