簡體   English   中英

Mysql數據庫設計中有多對多的關系

[英]Mysql database design in a many to many relationship

我正在設計一個數據庫,它涉及產品和攜帶它們的商店。

許多商店將攜帶相同的產品。 同樣,顯然,每家商店會有很多類型的產品。

我試圖對制作表格的最佳方法進行一些研究,但我在網上閱讀的所有資源都是技術上令人疲憊和邏輯上形式化,以至於它無法直觀地理解他們所說的內容。

我一直聽到有人說你應該使用聯結表,但我不明白這在我的情況下會如何適用。

我想要做的是為“商店”類別創建一行,然后有單獨的行“product_1”,“product_2”“product_x”等我將列出商店銷售的每個產品,但我不確定如果這是好的形式。

此外,一些商店可能有50個產品,這意味着我需要50行。 我不確定是否有辦法解決這個問題。

最后,我的問題是,按照標准慣例,這種關系的理想數據庫結構是什么?

我會有三張桌子。 一個用於商店[名稱,ID和信息]。 一個用於項目[名稱,ID和信息]。 一個鏈接兩個[關系ID,商店ID和商品ID]。

這樣您就可以更改商店和商品數據,而無需更新關系表。

因此,如果您想要商店中的商品,則在關系表中搜索與商店ID匹配的商品。 反之亦然如果您想要具有商品的商店,則在關系表中搜索商品ID並返回包含該商品的商店ID。

裸露的必需品示例:

STORE:
*********************
storeID    storeName
*********************
1          store1
2          store2
3          store3

ITEMS:
*********************
itemID    itemName
*********************
1          item1
2          item2
3          item3

RELATIONS:
*********************
storeID    itemID
*********************
1          1
1          2
2          1
2          3
3          2
3          3

因此,要查找store1具有哪些項目,您將獲得storeID為1,並搜索關系表以查找哪些行具有商店ID = 1,這將返回第一行和第二行,這告訴您store1具有第1項和第2項類似於找到哪些商店cary item2你將得到item2的ID,即2,在關系表中搜索itemID = 2,這將返回第二行和第五行,這告訴你商店1和3有item2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM