2015-09-24 38 views
0

我正在設計用於汽車零件的db。我需要創建一個結構,其中包括組,子組和汽車零件。每個部分將屬於一個子組,但該子組可以具有父子組。該父母子組可以屬於更高級別的子組。最後會有一組 - 根。所以這是一個經典的樹。問題是沒有固定數量的組。有時它可以是組 - >子組 - >自動部件,有時它可以是組 - >子組 - >子組 - >子組 - >自動部件。關於單個表

現在我有三個表格:Groups,SubGroups,AutoParts。 我應該如何設計子組之間的關係? 在SubGroups表中創建一個稱爲父子組的外鍵,它將引用同一個表中的另一行是否是一個好主意?在上層只有Group的情況下,該屬性將爲空。

回答

0

你可以做到這一切在2個表....上第一臺只需要插入所有組(父)

現在,在其他表..插入所有子子第N子組和所有第n號的子組...現在在此表中添加一個名稱(如reports_to的字段,其中將包含下一個子組ID。 你現在可以檢查所以子組報告哪些子組ID ...這將是它的子子組......等等,你可以繼續。 當存在reports_to字段到子組而不是那個子組的最後第n個子組。

我希望你能理解,這完全可以工作。\ 如果這有幫助,請標記爲答案。

+0

謝謝你的回答。有一件事我很擔心。在應用程序中插入新的子組時,我將沒有其子子組。如果我反向應用此解決方案會怎麼樣?我的意思是,report_to字段將是一個更高級別的子組的id,並且當該字段將爲空時,該子組將只有一個父 - 主組。 –

+0

是的,我的意思是,只有....你必須給予上層組ID的ID,它將報告給它。 –

+0

假設我在數據表中添加了一個子子組,其相應的report_to id將包含它的子組id(意味着它的父級(稱爲xyz)組id)....並且這個父級id(xyz)將包含main報告_字段中的父母標識 –