2017-02-13 73 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中的所有内容一样,对你的问题唯一有效的答案是“它取决于”。大多数这样的树木不会受到大量插入物和少量选择的影响。他们通常是相反的,少量的插入和大量的选择。 –

相关问题