Как реализовать уникальность, когда порядок полей не имеет значения

Я думаю, что следующий пример лучше всего объяснит ситуацию. Допустим, у нас есть следующая структура таблицы:

-------------------------------------
Member1   int      NOT NULL (FK)(PK)
Member2   int      NOT NULL (FK)(PK)
-------------------------------------
Statust   char(1)  NOT NULL

Вот содержимое таблицы:

Member1    Member2    Status
----------------------------
  100        105        A

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

INSERT status_table (Member1,Member2,Status) VALUES(105,100,'D');

По сути, я пытаюсь смоделировать отношения между двумя участниками. Поле Статус одинаково, независимо от того, есть ли у нас (100,105) или (105,100).

Я знаю, что могу использовать триггеры before_insert и before_update для проверки содержимого таблицы. Но мне было интересно, есть ли лучший способ сделать это... Должна ли моя модель базы данных отличаться...

9
задан Cristina 14 March 2012 в 17:02
поделиться