我正在努力做一个许多社交网络拥有的跟随/追随者类型的概念。我有2个INT字段,名为 me ,跟随,这些INT字段由用户唯一ID组成。我想这样做,如果用户23跟随用户7或23-> 7,则用户23不能再次关注用户7,因为该关系已经存在。这张照片将清除事情
注意上面的前两行是31-> 27,或者用户31是27后两次是多余的。我可以用一些约束来防止这种情况发生吗?我正在使用postgres版本9.4
答案 0 :(得分:1)
您可以通过创建唯一索引来完成此操作。但不只是任何唯一的索引,一个关于表达式:
create unique index unq_t_me_following
on (least(me, following), greatest(me, following));