2013-01-23 41 views
0

我有一個分類字段。每個類別最多隻有一個家長。 哪個更好?主鍵和外鍵是否在同一張表中

1)一個表:category_parent是外鍵(至CATEGORY_ID相關)和CATEGORY_ID是主鍵

category_id | category_parent | category_name 

2)2表

table1的

catgory_id | category_name 

table2中

id | category | category_parent 

category,category_parent是外鍵(與category_id相關),category_id是主鍵

回答

1

你說每個節點只有父節點。爲了您的要求,第一個選擇是更好的設計。

如果您需要一個節點擁有多個父母,第二個選項纔是真正的授權。

+0

如果大多數類別沒有父項,那麼怎麼辦?所以category_parent的大部分都是null,但在設計2中我們沒有這個問題 – user1903750

+1

如果對象沒有父對象,那麼完全可以有一個空父對象。 –

1

顯然第一個作爲每個節點只有一個父節點。因此,不會有冗餘,因爲類別名稱不能重複。

如果可以有多個父級,那麼類別名稱將在表中重複。在這種情況下,您將創建兩個表。

+0

如果大多數類別沒有父項,那麼該怎麼辦?所以category_parent的大部分都是null,但在設計2中我們沒有這個問題 – user1903750