【发布时间】:2021-06-05 17:12:42
【问题描述】:
我在 Uni 有一个关于 SQL 数据库的作业,但我很不擅长。 现在,我的任务是创建一个树形数据库结构(通过使用闭包表模型,如标题所示) 我的树由两个表组成:一个是包含节点本身的表,另一个包含从所有祖先到所有后代的所有路径。 换句话说,它是这样的(我使用了 sqlite,虽然我怀疑它对问题本身很重要,但以防万一):
CREATE TABLE Nodes(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT);
CREATE TABLE Paths(
id INTEGER PRIMARY KEY AUTOINCREMENT,
ancestor INTEGER,
descendant INTEGER,
FOREIGN KEY (ancestor) REFERENCES Nodes (id),
FOREIGN KEY (descendant) REFERENCES Nodes (id));
表路径包含所有有序对(祖先、后代),因此在树中有一条从祖先到后代的路径,包括祖先 = 后代的所有路径。 我的任务(我非常失败)是编写这样一个查询,它可以让我获得一个节点的所有直接后代。 我已经尝试了大约两个小时,但我仍然处于死胡同。 我还尝试将属性 pathLength 添加到路径表中,以告知祖先和后代之间的节点数,但老师不让我这样做。
【问题讨论】:
-
发布样本数据和预期结果以阐明您想要什么。