mysql - 二叉树或树能否在数据库中始终表示为 1 个表并自引用?

标签 mysql database-design tree schema-design binary-tree

我之前没有感觉到这个规则,但是似乎二叉树或者任何树(每个节点可以有很多子节点但子节点不能指向任何父节点),那么这个数据结构可以表示为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/

上一篇:mysql查询和索引

下一篇:java - POST 与 JDBC

相关文章:

javascript - 检查服务器的可达性

MySQL INSERT ON DUPLICATE KEY UPDATE 原因 ID 不按顺序

database-design - 四表关系设计

mysql - 跨多个表的 UNIQUE 索引

python - 如何从根目录中具有 xmlns 的 XML 文件获取数据

php - 选择语句不起作用

mysql - 将一个表中的两列连接到另一个表中的一列

sql - 电子邮件消息系统的数据库设计

java - 如何从 Trie 中检索给定长度的随机单词

bash - 使 linux 树 bash 脚本显示文件