0

之前没感觉过这个规律,但是好像是二叉树或者任意树(每个节点可以有很多子节点但子节点不能指向任何父节点),那么这个数据结构可以表示为数据库中的一张表,每一行都有一个自己的 ID 和一个parentID指向父节点的 ID。

这实际上是经典的员工 - 经理图:一个老板可以在他手下有很多人......每个人都可以n在他下面有人,等等。这是一个树形结构,在数据库书籍中作为一个常见示例表示为单表Employee

4

3 回答 3

2

您的问题的答案是“是”。

西蒙关于你的树变成循环图的警告也是正确的。

关于“您必须手动确保不会发生这种情况,即 DBMS 不会自动为您执行此操作,因为您不会破坏任何完整性或引用规则。”的所有内容都是错误的。

只要您只考虑 SQL 系统,这句话和相应的评论都是正确的。

存在可以以纯声明方式为您执行此操作的系统,即无需您编写任何*任何*代码。该系统是 SIRA_PRISE ( http://shark.armchair.mb.ca/~erwin )。

于 2010-06-06T10:15:08.857 回答
1

是的,您可以通过自引用表来表示层次结构。请注意以下情况:

Employee    Supervisor
1           2
2           1
于 2010-06-06T07:00:37.877 回答
0

对,那是正确的。这是一个很好的参考

请注意,您通常需要一个循环才能展开树(例如找到传递关系)

于 2010-06-06T07:01:01.010 回答