之前我没有感觉到这个规则,但似乎是二叉树或任何树(每个节点可以有很多子节点,但子节点不能指向任何父节点),那么这个数据结构可以表示为1个表格一个数据库,每行有一个自己的ID和一个指向父节点的parentID
。
这实际上是经典的员工 - 经理图:一个老板可以在他下面有很多人......每个人都可以有n
个人,等等。这是一个树形结构,用数据库书籍作为单个表Employee
的常见示例。
答案 0 :(得分:2)
你的问题的答案是'是'。
西蒙关于你的树成为循环图的警告也是正确的。
所有关于“你必须手动确保不会发生这种情况的东西,即DBMS不会自动为你做这件事,因为你不会破坏任何完整性或参考规则。”,错了。
只要您只考虑SQL系统,此注释和相应的注释就适用。
存在 CAN 以纯声明方式为您执行此操作的系统,即,而无需编写任何*任何*代码。该系统是SIRA_PRISE(http://shark.armchair.mb.ca/~erwin)。
答案 1 :(得分:1)
是的,您可以通过自引用表来表示层次结构。请注意这种情况:
Employee Supervisor
1 2
2 1
答案 2 :(得分:0)
是的,这是正确的。 Here's a good reference
请注意,您通常需要一个循环才能展开树(例如找到传递关系)