多对多表上的一种单向(唯一)关系

时间:2019-02-20 12:55:40

标签: sql database postgresql relationship

嘿,我有一个多对多表,其中显示了 postgresql 中2个用户之间的连接。该表如下所示:

CREATE TABLE message_connection (
    mc_id serial primary key,
    mc_opener int NOT NULL,
    mc_partner int NOT NULL,
    unique (mc_opener, mc_partner)
)

但是,我只希望允许两个用户之间的一种关系,因为它包含冗余信息。

在此示例中(1,2)已经存在,所以我不想要(2,1)。

+---------+-------------+--------------+
| "MC_ID" | "MC_OPENER" | "MC_PARTNER" |
+---------+-------------+--------------+
|         |             |              |
| 1       | 1           | 2            |
|         |             |              |
| 6       | 1           | 4            |
|         |             |              |
| 7       | 2           | 4            |
|         |             |              |
| 8       | 2           | 1   <-- I dont' want to allow that
+---------+-------------+--------------+

如何在SQL中做到这一点? 谢谢。

0 个答案:

没有答案