2016-11-09 70 views
1

如何構建動態自引用多對多關係?動態自引用多對多關係

我有一個問題,我無法克服。

我有表:

Types: 
id 
name 

Products: 
id 
name 
type_id 

product_products 
parent_id 
child_id 

讓我們假定我們有幾個產品在產品表。其中一些是:
(名稱是不相關)

CB1234 - products.type_id -> cardboard 
CBB999 - products.type_id -> cardboardbox 
CBP321 - products.type_id -> paper 

TSH123 - products.type_id -> tshirt 
FAB321 - products.type_id -> fabric 
THR321 - products.type_id -> thread 

現在我想告訴大家,我有一個用紙板和紙張類型的產品cardboardbox是product_product關係。在紙箱紙板和紙箱紙張關係,我想定義多少百分比的產品使用(一致性),使紙箱產品(可以說80/20,不相關)

我對不同的產品有不同的情況。現在我想要定義T恤織物和T恤線程之間的關係,但不是一致性,我想爲此產品定義織物和線程成本。

產品和產品參數計數不固定。可能有500種不同的產品和它們之間的不同關係。這個問題有什麼好的做法?有跡象表明,我想出了

  1. 很多手工的許多一對多的關係表
  2. 很多很多列的一些方法來product_product表

在這兩種情況下,有一些事情我不不喜歡設計,但也許這是正確的方式來做到這一點,也許我從一開始就設計我的數據庫是錯誤的。

回答

0

1)將要走的路 - 不知道會有真正做到「手」,一旦你制定了一切你想存儲

product_product_consistency product_product_cost(會這樣,而不是被表示爲product_cost,然後計算product_product_consistency還是這樣?)

什麼是最終用法,你想問什麼樣的問題數據?

+0

感謝您的評論。我認爲你可能是對的。 「最終用法是什麼?你想問什麼樣的問題?」 - 答案就是全部。我不知道未來的數量或類型問題。這就是爲什麼我需要它儘可能動態。 –

+0

一個非常通用的選項就像是一個帶有relationship_type的product_relationship表,但我認爲使用一個表來處理大量關係與關係數據庫的工作方式是對立的,並且只是存儲麻煩。每個表的清晰目的(「對象」或對象之間的關係)是做事的方式。 –