mysql - 存储具有不同属性的类似产品

标签 mysql database database-design

我需要存储具有不同属性(例如长度或颜色)的类似产品,我应该添加具有不同 ID 的产品还是作为具有多个属性的一件产品?

主要问题是我需要能够按属性(4 个红色 Boot ,3 个蓝色等)查看产品数量,并且需要在产品页面上实现属性选择器。

如果创建一个ID,如何在购物车表中存储具有选定属性的属性以及如何管理数量?

如果创建多个id,数量管理很容易,但是如何实现属性选择呢?

我考虑使用一些 SKU 将产品 ID 与属性和属性值链接起来。但如何将所有内容链接在一起呢?

最佳答案

如果您正在构建电子商务网站,则此域概念通常称为“变体”;请参阅here .

通常,您有一个包含商品主要属性的“产品”表和一个通过产品 ID 链接回产品的“变体”表。

如果您只处理类似的产品,您可以让变体表包含所有属性的列(例如尺寸、价格、颜色);如果你有很多不同类型的变体(例如衣服、鞋子、运动器材),那么你就处于“使用关系数据库的继承建模”;请参阅this回答。

关于mysql - 存储具有不同属性的类似产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26585819/

相关文章:

sql - 如何在每个 SQLite 行中插入唯一 ID?

database - Django 如何在 DatabaseError : query timeout 后重新连接

sql - 数据库中的回滚和调度?

php - 用于从单个数据库中的多个表中进行选择的 SQL 查询

C#存储球员卡数据库设计

sql - Postgres 外键 'on update' 和 'on delete' 选项如何工作?

php - 撇号导致已通过 mysqli_real_escape_string & trim 运行的表项的行重复出现错误

mysql - 如果不满足条件,则替换满足条件的行中的值

sql - mysql - 同一张表上的三个连接

php - 由于主键为空,我无法在数据库中插入数据