2

Простой структура таблицы: ID_1 INT, ID_2 INT,MySQL многоколончатый уникальная индексация независимо от столбца

Это простая реляционная таблица создания связей между пользователями. id_1 и id_2 всегда будут user_ids, которые существуют в другой таблице. Я пытаюсь создать индексирование таким образом, что никакая пара user_ids не может существовать в этой таблице более одного раза, независимо от того, в каком столбце находится идентификатор. Например, указанные идентификаторы пользователя: 1 и 2, если у нас есть запись: 1,2

Тогда запись: 2,1 следует рассматривать как дубликат.

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

+1

Вам понадобятся триггеры для такого рода вещей. Но в целом таблица, где 'id_1' и' id_2' являются взаимозаменяемыми, обычно означает проблему дизайна, и вы настраиваете себя на какую-то болезненную логику 'JOIN', как только вы начинаете запрос с помощью таблицы. –

+1

Аналогичный вопрос: http://dba.stackexchange.com/questions/22085/unique-combination-key-mysql –

ответ

1

Если бы я был с вами, и мне пришлось идти этим путем (+1 к Эд Гиббсу, который сказал, что у вас, вероятно, есть проблема с дизайном). В моем коде, который вставляет в MySQL, я всегда имел id_1 < id_2. Поэтому, если у вас есть доступ к вашему приложению, и вы всегда можете сделать id_1 < id_2, у вас не будет проблем.

Смежные вопросы