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

标签 mysql

我的网上商店有简单的产品(1 种产品有 1 个价格和 1 种颜色以及 1 个用于购买数量的字段)。 我想如何扩展它(1 种产品有 X 价格和 X 颜色,每种颜色的购买数量分开)。 因此,为所有值设置特定字段数的常规方法在这里不起作用。

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

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

谢谢。

最佳答案

您应该阅读关系数据库,因为它是一种行业标准。在您的示例中,您可以拥有一个具有特定 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)

获取特定产品 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";

关于mysql - 我将如何在 mysql 表中存储未知数量的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660744/

相关文章:

mysql - 如何对三结构数据应用SQL LIMIT?

mysql - 如何在 MYSQL 中匹配编码的变音符?

mysql - 将 MySQL 从 5.1 升级到 5.5 - InnoDB 插件问题

mysql - CakePHP 2.x 字段为空或 null

MySQL显示时间戳小于07的行 :00

php - 如何在没有 SSH 的情况下按需将实时 MySQL 数据库下载到本地测试数据库?

MySQL ORDER BY 一列和第二列

mysql - 如何使用NodeJS在sequelize中编写具有多个where的子查询

mysql - nodejs 数据库迁移耗尽堆空间

mysql - Kubernetes:mysql pod 无法打开日志文件/var/log/pods/