我有2個MySQL表:如何創建產品表,其中每個產品在MySQL中的多個類別下?
categories (id int, name varchar(1000))
而且
products (id int, name varchar(1000))
每個產品可以在多個類別。我正在考慮將分類「category_ids」添加到分類爲ID分類的表'products'中,但這種方法不便於MySQL查詢。
任何其他可能的方法?
我有2個MySQL表:如何創建產品表,其中每個產品在MySQL中的多個類別下?
categories (id int, name varchar(1000))
而且
products (id int, name varchar(1000))
每個產品可以在多個類別。我正在考慮將分類「category_ids」添加到分類爲ID分類的表'products'中,但這種方法不便於MySQL查詢。
任何其他可能的方法?
使第三表,有refernce到兩個表,如下面圖像
創建匹配產品類別表:
product_id category_id
1 1
1 2
2 5
3 5
3 2
等希望它幫助:)
添加結合表連接兩個:
**product_categories**
productid (FK ref product.id)
categoryid (FK ref categories)
這似乎是一個多對多的關係....
爲了映射多對多的關係,你將需要另一臺
categories_products(id, category_id, product_id)
這樣一個產品可以來在許多類別和類似的一類可以容納很多產品。
產品表將有一個與categories_products表 分類表中的許多關係也將有一對多relationip與categories_products表
那實現多對多關係的標準方式
聚集複合主鍵(CATEGORY_ID,PRODUCT_ID)將更好地執行完整性和更高性能 - 溝渠無意義的代理PK和閱讀索引類型http://stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one- on-a/4421601#4421601 –
哦,太棒了,我怎麼能忘記這個映射2個表格的方法,tks提醒我 – jondinham