具有某些特定约束的 PostgreSQL 多对多关系

PostgreSQL many-to-many relationship with some particular constrains

我偶然发现了一个多对多的问题。我有三个实体:User、UserReaction 和 Post。基本上,用户可以对 Post 做出反应(喜欢、不喜欢等)。问题是用户应该只对每个 post.

做出一个反应

但是使用我当前的数据库,用户可以对 post.

做出多个反应

我可以通过数据库限制用户对每个 post 做出一个反应,还是应该在代码中处理这个问题?

创建唯一约束:

Alter table UserReaction
      add constraint one_reaction_per_customer_per_post
          unique ( customer_id, post_id);