如何在MySQL中创建每个产品属于多个类别的产品表?

时间:2011-10-28 09:26:30

标签: php mysql database database-design optimization

我有2个MySQL表:

categories (id int, name varchar(1000))

并且

products (id int, name varchar(1000))

每个产品可以分为多个类别。我正在考虑将列“category_ids”添加到表'products'中,类别Ids用分号分隔,但这种方法对MySQL查询不方便。

还有其他可能的方法吗?

4 个答案:

答案 0 :(得分:5)

创建一个匹配具有类别的产品的表:

product_id category_id
1          1
1          2
2          5
3          5
3          2

等。希望它有所帮助:)

答案 1 :(得分:2)

添加连接两者的联结表:

**product_categories**
productid (FK ref product.id)
categoryid (FK ref categories)

答案 2 :(得分:2)

制作第三个表格,参考下表中的两个表格

enter image description here

答案 3 :(得分:1)

这似乎是一对多关系......

为了映射多对多的关系,你需要另一张表

categories_products(id, category_id, product_id) 

因此,一个产品可以归入许多类别,同样一个类别可以容纳许多产品。

产品表与categories_products表有一对多的关系 类别表还将与categories_products表具有一对多关系

这是实现多对多关系的标准方法