用户可以给多个文章内容进行投票,文章内容可以被多个用户投票,这种情况下,用户还有内容之间就是一个 ManyToMany,就是多对多的关系,这个投票你也可以换成或者想成是其它的动作,比如喜欢,收藏等等。
下面我们去定义这个多对多的关系,先打开用户实体,定义多对多的关系,要使用 @ManyToMany 这个装饰器,关联的 type 是 Post 实体。
关系的名字可以叫 voted,它应该是一组 Post[] ,多对多的关系需要存储在一个中间表里,所以这个有关系的上面,需要再用一个 @JoinTable ,它接收一个选项参数,里面可以设置一下中间表的名字, 如果不特别设置的话,就会使用默认的名字。
保存一下这个实体, 然后打开数据库客户端,你会发现在应用使用的数据库里面会多了一个叫 user_voted_post 这样的一个数据表,表里面有两个字段 ,一个是 userId,还有一个 postId。
也就是创建了用户还有内容之间的关系,会在这个表里面存储一下用户的 ID 号,还有用户投票的那个 ID 号。