回答編集履歴
2
推敲
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
例えば、以下のようなインデックスをユニーク属性で作成します。
|
4
4
|
```SQL
|
5
5
|
create unique index Invitation_unique on Invitation(
|
6
|
-
|
6
|
+
least(inviter_id, invitee_id), greatest(inviter_id, invitee_id)
|
7
7
|
);
|
8
8
|
```
|
9
9
|
若しくは、テーブル構造を変更し、IDの小さいものを最初に登録というルールを持たせた上で、そのIDが招待者なのか被招待者なのかの識別を持たせる、というようなことが考えられます。
|
1
追記
answer
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
DBMSには項目の組み合わせという概念はありません。順列のみです。
|
2
2
|
ですので、自前で制約を作るしか無いと思います。
|
3
|
-
|
3
|
+
例えば、以下のようなインデックスをユニーク属性で作成します。
|
4
|
+
```SQL
|
5
|
+
create unique index Invitation_unique on Invitation(
|
6
|
+
greatest(inviter_id, invitee_id), least(inviter_id, invitee_id)
|
7
|
+
);
|
8
|
+
```
|
4
9
|
若しくは、テーブル構造を変更し、IDの小さいものを最初に登録というルールを持たせた上で、そのIDが招待者なのか被招待者なのかの識別を持たせる、というようなことが考えられます。
|