我现在将在sqlite中执行此操作,因为它们支持外键和tsql以及mysql。
执行
之类的操作是否违法CREATE TABLE comment(
id integer primary key,
parent integer references(comment.id),
author integer references(User.id),
desc varchar(max),
hidden bit
deleted bit
);
其中parent可以是0或null,因为它是root并且没有父级? AFAIK我不会删除任何评论,但会将其设置为隐藏或deleted
。我大多想知道我是否可以将root作为0或null,否则我不知道如何让注释有一个引用父(我不能让第一个指向它自己?)。
答案 0 :(得分:4)
具有FOREIGN KEY的列可以为空,但如果父表中没有对应的行且其中包含“0”,则它不能保持为“0”。 '0'是一个值,而NULL表示“无值”。
因此,在这种情况下,您正在设置的“邻接列表”结构的根节点将为“父”的值设置为NULL。