mysql 商品属性_MySQL产品属性表设计

对于当前的客户项目,我开发了一个存储产品的CMS.

产品是具有标题,文字和文字等一些特性的条目.等等

但是,有些客户希望拥有不同的属性,如价格,颜色和价格.等等

我尝试使我的代码尽可能通用,所以我不想修改代码

为每个客户.

我的问题:

我如何设计这样一个数据库,产品可以拥有无​​限的多个属性?

如何为这种不同的设计创建/生成表单?

谢谢阅读.

解决方法:

你需要有两个表:

CREATE TABLE products( product_id INT, product_name VARCHAR, ... );

CREATE TABLE product_properties( product_id INT, property_name VARCHAR, property_value VARCHAR );

第一个表包含每行一个产品及其唯一ID及其常用属性

--------------------------------------------------------

| id | name | other common properties...

--------------------------------------------------------

| 1 | apple | ...

| 2 | bentley |

| 3 | ... |

| ... | ... |

第二个表将每个产品与其非常见属性相关联:

----------------------------------------------------

| id | property_name | property_value |

----------------------------------------------------

| 1 | color | red |

| 1 | size | large |

| 2 | wheel count | 4 |

| 2 | top speed | 200 |

| 2 | airbags | yes |

| ... | ... | ... |

您通过两个查询获得产品信息,首先获得公共属性:

SELECT product_name, ... FROM products WHERE product_id = 2

那么非常见的属性:

SELECT property_name, property_value FROM product_properties WHERE product_id = 2

标签:mysql,database-design

来源: https://codeday.me/bug/20190716/1482491.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值