Postgres如何使2个数字字段彼此独特

时间:2016-02-02 17:05:44

标签: postgresql postgresql-9.3 postgresql-9.4

我正在努力做一个许多社交网络拥有的跟随/追随者类型的概念。我有2个INT字段,名为 me 跟随,这些INT字段由用户唯一ID组成。我想这样做,如果用户23跟随用户7或23-> 7,则用户23不能再次关注用户7,因为该关系已经存在。这张照片将清除事情

enter image description here

注意上面的前两行是31-> 27,或者用户31是27后两次是多余的。我可以用一些约束来防止这种情况发生吗?我正在使用postgres版本9.4

1 个答案:

答案 0 :(得分:1)

您可以通过创建唯一索引来完成此操作。但不只是任何唯一的索引,一个关于表达式:

create unique index unq_t_me_following
    on (least(me, following), greatest(me, following));