我正在创建一个博客,在那里你可以喜欢一个评论或与typeorm和postgres的帖子,这里是喜欢的实体:
@Entity()
@Unique(["user", "post", "comment"])
export default class Like {
@PrimaryGeneratedColumn()
id: number;
// @Column()
// likeCount: number;
@ManyToOne(() => User, (user) => user.likes, { nullable: false })
user: User;
@ManyToOne(() => Post, (post) => post.likes)
post: Post;
@ManyToOne(() => Comment, (comment) => comment.likes)
comment: Comment;
字符串
我想创建一个约束,用户只能喜欢一个评论/帖子一次,在上面的代码中,我尝试了独特的约束,但它不工作,我应该怎么做?我应该创建两个不同的表,一个是喜欢的帖子,一个是喜欢的评论?我如何记录每个评论/帖子有多少喜欢?
我尝试了唯一约束但不起作用
2条答案
按热度按时间xxhby3vn1#
可以对user_id和comment_id列的组合或者user_id和post_id列的组合使用唯一约束。此将允许用户喜欢多个帖子/评论。并使用外键将喜欢与帖子/评论链接起来,以确保它们存在于数据库中
tpgth1q72#
添加列
userId
、postId
、commentId
并在它们上创建唯一索引。像这样^
字符串
因此,一个用户对每个帖子只喜欢一条评论。