2017-02-13 70 views
1

首先,我沒有想法如何標題我的問題。如果任何人有更好的標題,我會很好。更好的方法來創建一個表,其中記錄參考其他記錄到父表

我現在真正的問題是關於什麼是使記錄引用同一個表中的其他記錄的最佳方法。我在考慮類似

  • 一個人必須有一個父親(邏輯思維,讓我們忘了孤兒的人,請)
  • 一個人可以是父母給許多孩子的

該表格可能類似於 PersonId,Name,PersonParentId

是不是正確?有更好的方法來做到這一點?我聽說過分層數據,但我不確定。

謝謝

+1

這是一個很好的開始!別忘了外鍵! – jarlh

+1

你的建議非常好。 – Siyual

+0

這都是?簡單而簡單?我很害怕它有多簡單:D –

回答

3

這幾乎總是最好的辦法。你會看到更好的方式討論,但總的來說,這幾乎總是正確的做法。

一些指針。

  1. 不要忘記外鍵
  2. 確保引用的邏輯是固體
  3. 查找到WITH RECURSIVE基於樹的查詢
  4. 在你的遞歸CTE的代碼防守和檢查週期。
+1

我會強烈支持嵌套集合。它消除了遞歸的需要,移動樹的部分非常簡單。 –

+2

@SeanLange你會爭論嵌套設置強大的大集高插入水平? – SqlZim

+2

@SqlZim與sql server中的所有內容一樣,對你的問題唯一有效的答案是「它取決於」。大多數這樣的樹木不會受到大量插入物和少量選擇的影響。他們通常是相反的,少量的插入和大量的選擇。 –

相關問題