我想管理一个 n-label 评论系统并设计一个这样的数据库结构。
我正在尝试设计一个支持未注册用户评论审核的数据库。我需要的功能是在发表评论时
- 如果用户已注册,它会直接显示。除此以外;
- 帖子在出现之前必须由版主检查。
请建议对我上面的数据库架构进行可能的更改以支持此功能。
我想管理一个 n-label 评论系统并设计一个这样的数据库结构。
我正在尝试设计一个支持未注册用户评论审核的数据库。我需要的功能是在发表评论时
请建议对我上面的数据库架构进行可能的更改以支持此功能。
为了做你想做的事,你似乎或多或少地拥有你需要的东西。用户创建新评论的过程如下
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
.