как сохранить комбинацию ячеек уникальной - PullRequest
0 голосов
/ 22 сентября 2009

у меня есть таблица A и таблица B. У меня есть таблица моста, которая называется tableC

в таблице C у меня есть:

ID
tableA_ID
tableB_ID

ID - это первичный ключ.

Я также хочу, чтобы комбинация tableA_ID и tableB_ID была уникальной, чтобы не было повторяющихся записей.

как мне применить это?

Ответы [ 3 ]

3 голосов
/ 22 сентября 2009
create unique index myIdx on tableC(tableA_ID, tableB_ID)

или любой другой синтаксис вашей конкретной системы баз данных.

2 голосов
/ 22 сентября 2009

Сделать ПЕРВИЧНЫЙ КЛЮЧ tableA_ID и tableB_ID, ИД ИСКЛЮЧЕНИЯ

Допустим, у нас есть таблица TABLEA со значениями

tableAID
1
2
3

и таблица TABLEB со значениями

tableBID
4
5
6

создание первичного ключа (ID, tableA_ID, tableB_ID) не будет работать, например.

ID | tableAID | tableBID
1 | 1 | 4
2 | 1 | 4

будет хорошо работать с вышеуказанным pk, но вам нужен PRIMARY KEY (tableA_ID, tableB_ID)

0 голосов
/ 22 сентября 2009

Удалите столбец ID, затем сделайте два других столбца первичным ключом, и их уникальность будет обеспечиваться сервером базы данных. В действительности нет необходимости иметь столбец идентификатора - даже если он служит удобным способом ссылки на конкретную запись - поскольку уникальность двух других столбцов будет означать, что их достаточно для ссылки на конкретную запись.

Возможно, вы также захотите поместить индекс в эту таблицу, который включает в себя оба столбца, чтобы ускорить доступ.

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