簡體   English   中英

設計多對多關系的正確方法

[英]Correct way to design Many To Many Relationship

我正在用Java編程語言開發軟件,並將MySQL用作DB。 該軟件從用戶那里收集一些輸入,然后計算/選擇他/她需要的產品。 首先,他/她創建一個項目(應該創建一個名為project的表)並計算/選擇產品,然后將其添加到項目中。 產品字段彼此不同。(因此,對於每個名為A,B,C的產品,我們都有不同的表)例如,我有3種產品類型,每個產品都有特定的字段並且彼此不同,因此用戶選擇的方式/計算每個都不相同。 產品A有3個字段(product_id,名稱,型號)產品B有7個字段(product_id,名稱,顏色,公司名稱,...。)產品C有14個字段(product_id,名稱,公司名稱,制造商,創建者) ,.....)我不能將這些產品視為一體,因為領域不同。 每個產品可以在多個項目中,並且每個項目可以具有多種類型的產品。(多對多關系)每個項目都必須保存產品。 在這種情況下,我應該在每個產品表和項目之間創建多對多關系嗎? 如果是,我以后如何再次檢索項目? 在這種情況下最佳做法是什么? 如何將這3個產品表視為一個表?

您可能想要創建一個JOIN表來管理其他兩個表中的記錄之間的相互關系。

例如:

  • 項目(project_id,project_name)
  • 產品(product_id,product_name)
  • project_products(pp_project_id,pp_product_id)

這樣,您可以:

  • 在定義項目和產品之間的相互關系之前,先創建它們
  • 輕松定義項目和產品之間的相互關系,而無需創建復雜的架構

用法示例:

項目表:

project_id  |  project_name
------------+----------------
 1          | Country market
 2          | City carnival

產品表:

product_id   |  product_name
-------------+---------------
 101         | Candy floss
 102         | Cheeseburger
 103         | Hamburger
 104         | Pizza - Hawaiian

project_products表:

pp_project_id  |  pp_product_id
---------------+----------------
1              | 101
1              | 103
1              | 104
2              | 101
2              | 102
2              | 104

在上面的示例中...

  • 項目1有3個產品
  • 項目2有3個產品
  • 產品101和104都記錄了2個項目
  • 其余產品僅針對1個項目記錄

暫無
暫無

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

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