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