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


版权声明:本文为weixin_39640909原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。