2010-01-22 11 views
0

J'ai besoin que les clés primaires de 2 tables sqlite (disons, id1 et id2) soient liées de sorte qu'aucun id1 ne puisse être égal à id2 et vice versa. C'est parce que j'ai besoin d'obtenir à partir de ces 2 tables le même type d'élément xml, avec un identifiant d'attribut unique. Existe-t-il un moyen, en sql, compris par sqlite ou en SQL "classique", d'exprimer de telles contraintes dans mes champs id? Alternativement, je suppose que je pourrais créer une autre table en référence à l'autre 2 et unique ID à partir de laquelle je prendrais mes données ... mais je voudrais savoir si c'est possible dans l'autre sens d'abord, et qui est la meilleure pratique dans ce cas à votre avis.SQLite: Table1.id <> Table2.id pour chaque ID dans Table1, Table2

Merci!

Répondre

0

De toute façon, les valeurs d'ID XML ne peuvent techniquement pas être des nombres, donc ajoutez un préfixe à l'ID avant de le stocker au format XML. Alors vous n'avez pas besoin de vous soucier des doublons numériques.

http://www.w3.org/TR/2004/REC-xml-20040204/#NT-Name

[4] NameChar :: = Lettre | Digit | '.' | '-' | '_' | ':' | CombinerChar | Extender

[5] Nom :: = (Lettre | '_' | ':') (NameChar) *

de contrainte de validité: ID

Les valeurs de type ID doit correspondre à la production Nom. Un nom NE DOIT PAS apparaître plus d'une fois dans un document XML comme une valeur de ce type; c'est-à-dire que les valeurs d'ID DOIVENT identifier de manière unique les éléments qui les portent.

Questions connexes