SQLite: Table1.id <> Table2.id для каждого идентификатора в Table1, Table2 - PullRequest
0 голосов
/ 23 января 2010

Мне нужно, чтобы первичные ключи двух таблиц sqlite (скажем, id1 и id2) были связаны так, чтобы ни один id1 не мог быть равен любому id2 и наоборот. Это потому, что мне нужно получить из этих двух таблиц один и тот же тип элемента xml с уникальным атрибутом id. Есть ли способ или в SQL, как понимает SQLite или в "классическом" SQL, чтобы выразить такие ограничения для моих полей id? В качестве альтернативы, я думаю, я мог бы создать другую таблицу со ссылкой на другие 2 и уникальный идентификатор, из которого я бы взял свои данные ... но я хотел бы знать, возможно ли это сначала другим способом, и который является На ваш взгляд, лучшая практика в этом случае.

Спасибо!

1 Ответ

0 голосов
/ 23 января 2010

Значения XML ID технически не могут быть числами в любом случае, поэтому добавьте идентификатор перед текстом перед сохранением в XML. Тогда вам не нужно беспокоиться о числовых дубликатах.

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

[4] NameChar :: = Letter | Цифра | '' | '-' | '_' | ':' | CombiningChar | Удлинитель

[5] Имя :: = (Буква | '_' | ':') (NameChar) *

Ограничение действительности: ID

Значения типа ID ДОЛЖНЫ совпадать с продукцией Name. Имя НЕ ДОЛЖНО появляться в документе XML более одного раза как значение этого типа; т.е. значения идентификаторов ДОЛЖНЫ однозначно идентифицировать элементы, которые их несут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...