2009-09-24 152 views
0

alt text http://produits-lemieux.com/database.jpg數據庫關係多對多

這是basicly我的數據庫結構

一個產品(比方說,SOAP)將有許多零售銷售規模

  • 1升
  • 4升
  • 20升

在我的「produit」數據庫中,我將有肥皂項目(編號1) 在大小的數據庫,我將有很多大小菱:

  • 1升
  • 4升
  • 20升

如何不復制產品3次大小不同...我喜歡能夠在數據庫中可用的所有大小的產品大小中具有複選框,並檢查是或否(布爾值)


答案一個得到的是完美的,但如何有這樣的選項:

肥皂[X] 1升[] 4升[X]20升

+1

只是做一樣的,你這樣做是爲了格式,認證和odeurs。 – Lazarus 2009-09-24 18:32:30

回答

4

我不是我確定我瞭解你的確切場景,但要創建一個多對多的關係,你只需創建一個「關係表」,在其中存儲你想鏈接的兩條記錄的id。

實施例:

Products 
******** 
ProductID (PK) 
Price 

Retailers 
********* 
RetailerID (PK) 
Name 

ProductRetailerRelationships 
**************************** 
ProductID 
RetailerID 
+0

達尼特!當我開始輸入時,另一個人正確回答正確答案! – Pulsehead 2009-09-24 18:34:47

+0

它是另一個數據庫維護...是可能的複選框選項?...但我完全理解你的答案,它的工作! – menardmam 2009-09-24 18:36:30

+0

也稱爲交叉引用表或外部參照表。 – 2009-09-24 18:55:08

0

甲許多一對多關係使用中間表幾乎總是建模。對於你的榜樣,

Product 
-------- 
prod_numero 
... 

Size 
-------- 
size_numero 
... 

Product_Size 
-------- 
prod_numero 
size_numero 
... 

Size表將包含特定大小(例如10升)和Product_Size表中創建一個ProductSize配對。

0

您將需要一箇中介,或 「加入」 表

ProductSizes
.......................
的ProductID
SizeID每個產品的尺寸組合

0

基於答案

一個記錄,這裏所提出的數據庫表的佈局,它看起來複雜的給我,但你肯定是要做到這一點,方式BEST解決方案?

alt text http://produits-lemieux.com/database2.jpg

+0

我開始想,也許去一個XML結構...但我可以記得我已經讀過的地方:曾幾何時,程序員有一個問題,然後他使用XML,現在他有兩個問題!... – menardmam 2009-09-24 22:22:04