仿牛客社区comment表的设计

在这里插入图片描述
comment表中主要包含了两大种(三小种)评论。
第一种是对用户帖子的评论,第二种是对用户帖子下面的评论的评论(本情况可细分为直接在该条评论下面进行的评论对该条评论下面的评论的评论,target_id(目标用户的id)字段的设计主要是为了后者识别,在前端显示的时候可以显示是对帖子下面的评论中的众多评论中的目标用户的哪条评论进行评论)。
entity_type为1时,表示该评论是对用户帖子的评论,为2时,表示该评论是对用户帖下面的评论的评论。

查询评论:
在CommentMapper中,通过entityType和entityId就可以查到某条帖子的下面所有评论或者某条帖子下面的某条评论下面的所有评论,查询的时候按照评论创建时间升序,越新的评论越靠下面显示,当然越新的评论其id也越大。对于帖子的评论的显示没有什么特殊的,但是对于帖子的评论下面的评论的显示,有的是帖子的评论的直接评论,有的是对某个用户的评论的评论,在前端显示时,通过判断后端传过来的targetid值的情况做出不同的显示。

插入评论:
可以在三个地方进行评论——
①对帖子的评论:

<input type="hidden" name="entityType" value="1">
<input type="hidden" name="entityId" th:value="${discussPost.id}">

将entityType为1和帖子id传到后端;
②对帖子下面某条评论的直接评论:

<input type="hidden" name="entityType" value="2">
<input type="hidden" name="entityId" th:value="${cvo.comment.id}">

将entityType为2和评论id传到后端;
③对帖子下面的评论的直接评论进行的评论:

<input type="hidden" name="entityType" value="2">
<input type="hidden" name="entityId" th:value="${cvo.comment.id}">
<input type="hidden" name="targetId" th:value="${rvo.user.id}">

将entityType为2和评论id以及是给哪个userA的评论进行评论的(即这个userA的id)传到后端;

后面就是在后端对内容进行判空、过滤、插入数据库等操作。

你可能感兴趣的:(仿牛客,java)