我之前没有感觉到这个规则,但是似乎二叉树或者任何树(每个节点可以有很多子节点但子节点不能指向任何父节点),那么这个数据结构可以表示为1个表一个数据库,每一行都有一个自己的 ID 和一个指向父节点的 parentID
。
这实际上是经典的员工 - 经理图:一个老板可以有很多人在他手下......并且每个人可以在他手下有n
人,等等。这是一个树结构,在数据库书籍中作为一个常见示例表示为单个表Employee
。
最佳答案
您问题的答案是"is"。
西蒙关于你的树变成循环图的警告也是正确的。
所有关于“您必须手动确保这种情况不会发生,即 DBMS 不会自动为您执行此操作,因为您不会违反任何完整性或引用规则。”的内容,是错误的。
只要您只考虑 SQL 系统,此评论和相应的评论就成立。
存在一些系统可以以纯声明性方式为您执行此操作,即无需您编写*任何*代码>。该系统是 SIRA_PRISE ( http://shark.armchair.mb.ca/~erwin )。
关于mysql - 二叉树或树能否在数据库中始终表示为 1 个表并自引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2983367/