2015-02-04 27 views
0

我從來沒有做自我參照表(我沒有深入到它尚未),但小心我到這一刻我想該表應該自引用嗎?

比方說,我們有一個表命名爲「人」

// [Human] 
ID 
Name 
Surname 
... 
father 

父列也是Human(captain明顯)實例,所以父列應該是對[Human] .ID的引用?

出於某種原因,很難想象對我而言,首次發生的INSERT不能包含對自身的引用,所以父親應該是可以爲空的(讓我們不要進入邏輯背後,一些數據可能是未知的)。這消除了配對PK列在表

我做的這個 enter image description here

+0

哪個數據庫引擎? –

+0

我沒有想到它,現在我正在用Oracle數據庫進行測試,但我會選擇innoDB,因爲我之前正在使用它。 –

+2

你可以有一個'Parent'表,你可以加入查詢中的'Human'表。一個人不但可以有一個不認識的父親,還可以因收養,再婚等原因而擁有一個以上的父親。 –

回答

0

更復雜的圖像除非你打算存儲上誰有史以來每個人的數據,你最終將有一個人沒有父親的紀錄(即使如此:誰是你第一個人類的父親)。換句話說,是的,該列需要是可空的。

1

您可以爲'未知'人插入一行,然後具有未知父親的人可以參考未知人的ID