2009-12-20 4 views
0

나는 외부 키와 tsql 그리고 아마도 mysql을 지원하기 때문에 sqlite에서 이것을 수행 할 것이다.null 또는 0에 대한 참조를 설정하는 것이 잘못 되었습니까?

그것은 루트이며, 부모가 없기 때문에 부모가 0 또는 null이 될 수

CREATE TABLE comment(
id integer primary key, 
parent integer references(comment.id), 
author integer references(User.id), 
desc varchar(max), 
hidden bit 
deleted bit 
); 

그런 짓을하는 것은 불법인가? AFAIK 나는 코멘트를 삭제하지 않을 것이지만, 숨김으로 설정하거나 deleted으로 설정할 것입니다. 나는 대부분 내가 0 또는 null로 루트를 가질 수 있는지를 알고 싶다. 그렇지 않으면 내가 어떻게 코멘트에 부모가 될 수 있는지 알 수 없다. (나는 그 자체로 첫 번째 포인트를 만들 수 없다?).

답변

4

FOREIGN KEY가있는 열은 Nullable 일 수 있지만 부모 테이블에 '0'이있는 행이없는 경우 '0'을 유지할 수 없습니다. '0'은 값이고 NULL은 '값 없음'을 나타냅니다.

그래서이 경우 "adjacency list"구조의 루트 노드는 "parent"값에 대해 NULL을 갖습니다.

관련 문제