我如何在mysql表中存储未知数量的数据?

arm*_*rma 3 mysql

我有在线商店,有简单的产品(1个产品有1个价格和1种颜色,1个字段用于购买计数).我想要扩展的是(1个产品有X价格和X颜色,并为每种颜色分开购买计数).因此,对所有值具有特定字段数的常规方法在此处不起作用.

所以我的问题是:我如何为1种产品存储未知数量的价格和颜色,并为每种产品购买数量?

我是否从php序列化数据并将其存储在BLOB字段类型中?做这种事情的建议或行业标准方法是什么?

谢谢.

Zac*_*old 5

您应该阅读关系数据库,因为它是一个工业标准.在您的示例中,您可以拥有一个具有特定表的表ProductID,并且您的后续表将通过引用表将它们自己的数据行引用到某个ProductID表.

这是一个非常基本的例子,说明如何让产品与多种颜色联系起来.

Products (table 1)
------------------
ProductID (int 20)
ProductName (varchar 250)
Description (text)
ProductPrice (float)

ProductToColor (table 2)
------------------------
ProductID (int 20)
ColorID (int 20)

Color (table 3)
----------------
ColorID (int 20)
ColorName (varchar 250)
Description (text)
Run Code Online (Sandbox Code Playgroud)

获取特定产品ID下所有颜色的非常基本的SQL将是:

SELECT ProductID,Color.* FROM Products LEFT JOIN ProductToColor ON Product.ProductID = ProductToColor.ProductID LEFT JOIN Color ON ProductToColor.ColorID = Color.ColorID WHERE Product.ProductID = "1";
Run Code Online (Sandbox Code Playgroud)