2011-12-28 70 views
3

我有网上商店,有简单的产品(1个产品有1个价格,1个颜色和1场买入计数)。 我想要扩展的是(1个产品有X个价格和X个颜色,并且购买了每种颜色的单独计数)。 因此,对于所有值具有特定字段数的常规方法在此不起作用。如何将未知量的数据存储在mysql表中?

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

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

谢谢。

回答

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) 

一个非常基本的SQL来获取所有正在某个特定产品ID的颜色会是:

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"; 
3

您应该创建一个单独的ProductColor表,其中ProductId,ColorPrice列,每个产品每个颜色一行。

相关问题