-2

我想管理一个 n-label 评论系统并设计一个这样的数据库结构。我的数据库结构

我正在尝试设计一个支持未注册用户评论审核的数据库。我需要的功能是在发表评论时

  • 如果用户已注册,它会直接显示。除此以外;
  • 帖子在出现之前必须由版主检查。

请建议对我上面的数据库架构进行可能的更改以支持此功能。

4

1 回答 1

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.

于 2012-04-30T08:36:43.837 回答