2009-12-20 5 views
0

Je vais le faire en sqlite maintenant qu'ils supportent les clés étrangères et tsql et peut-être mysql.est-il invalide de définir une référence à null ou 0?

Est-il illégal de faire quelque chose comme

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

où parent peut être 0 ou nulle parce qu'elle est la racine et ne dispose pas d'un parent? AFAIK je ne supprimerai aucun commentaire mais le mettra à caché ou comme deleted. Je veux surtout savoir si je peux avoir la racine comme 0 ou null sinon je n'ai aucune idée comment je peux avoir le commentaire avoir une référence un parent (je ne peux pas faire le premier point à lui-même?).

Répondre

4

une colonne avec une clé étrangère peut être nullable, mais elle ne peut pas contenir un '0' s'il n'y a pas de ligne correspondante dans la table parent avec un '0' dedans. '0' est une valeur alors que NULL représente "aucune valeur". Dans ce cas, les nœuds racine de la structure "adjacence list" que vous configurez auront la valeur NULL pour la valeur "parent".

Questions connexes