我想管理一个n标签评论系统并设计一个这样的数据库结构。
我正在尝试设计一个支持未注册用户的评论审核的数据库。我需要的功能是在发布评论时
请建议对我上面的数据库架构进行可能的更改以支持此功能。
答案 0 :(得分:1)
为了做你想做的事,看来你或多或少都有你需要的东西。用户创建新评论的过程如下
if the user is registered, and not blocked
create BlogComment record with:
IsApproved=true
IsBlocked=false
UserId=registered userId
UserName = null
if the user is registered and blocked
create BlogComment record with
IsApproved=false
IsBlocked=true
UserId=registered userId
UserName = null
if the user is unregistered
create BlogComment record with
IsApproved=false
IsBlocked=false
UserId=null
UserName=user's name
当您提取评论以显示在帖子下方时,您需要像
这样的查询SELECT Comment, ISNULL(bc.UserName, ru.UserName) AS UserName
FROM BlogComment bc
LEFT JOIN RegisteredUser ru
ON bc.UserId = ru.Id
WHERE postId=<current PostId>
AND IsApproved=1
这将取消所有已批准的评论(来自注册用户或来自已经审核的未注册用户的评论)及其用户名(对于注册用户,这将是来自RegisteredUser
表的用户名,用于未注册它将与BlogComment
表中的评论
最后,当您想要提取主持人的帖子列表以适度
时SELECT *
FROM BlogComment
WHERE IsApproved=0
AND IsBlocked=0
然后,您可以将他们接受的记录更新为IsApproved=1
。