如何构建模型以正确有效地表示关系数据库中的类似树状数据?
-
15-10-2019 - |
题
基于 使用SQL在关系数据库中浏览类似树的数据 问题,我想知道如何定期用来描述有关物理含义的关系数据库中类似树状数据的方式?
我假设RDBMS除了常规SQL ANSI或常见的可用功能外,没有其他功能。
疑问,我一直对MySQL和PostgreSQL以及最终的SQLite感兴趣。
解决方案
我相信他正在寻找像二进制树一样的东西。我只需包含与同一桌子的唯一ID相关的三个键,一个是左边的键,一个用于右子女,另一个用于父母。
IE-(非常伪代码)
TABLE tree
int id autoinc
varchar(16) data_you_care_about
int parent_id
int left_child_id
int right_child_id
FOREIGN KEY parent_id = tree.id
FOREIGN KEY left_child_id = tree.id
FOREIGN KEY right_child_id = tree.id
其他提示
如果每个节点确实是相同的数据实体,则范式仍然表示每个实体的一个表,以及一个仅链接一次的树遍历的链接列。
对于在树中多个点链接的实体,将使用单独的链接表或一个多个不同的值列。
不隶属于 dba.stackexchange