更好的方法是有一个表,其中记录引用与父表相同的表的其他记录

时间:2017-02-13 15:15:50

标签: sql sql-server

首先,我没有IDEA如何标题我的问题。如果有人有更好的头衔,我会很高兴。

我现在的真正问题是,在同一个表中创建引用其他记录的记录的最佳方法是什么。我正在考虑像

这样的事情
  • 一个人必须有一个父亲(逻辑思维,让我们忘记孤儿!)
  • 一个人可以成为许多孩子的父母

桌子可能有些像 PersonId,Name,PersonParentId

是不是?还有更好的方法吗?我听说过Hierarchical Data,但我不确定。

由于

1 个答案:

答案 0 :(得分:3)

这几乎总是最好的方法。您将看到更好的方式的讨论,但总的来说,这几乎总是正确的方法。

一些指示。

  1. 不要忘记外键
  2. 确保参照逻辑是实心的
  3. 查看WITH RECURSIVE基于树的查询
  4. 在您的Recursive CTE代码中进行防御并检查周期。