-2

n ラベルのコメント システムを管理し、このようなデータベース構造を設計したいと考えています。私のデータベース構造

未登録ユーザーのコメント管理をサポートするデータベースを設計しようとしています。私が必要とする機能は、コメントが投稿されたときのようなものです

  • ユーザーが登録されている場合は、直接表示されます。それ以外は;
  • 投稿は、表示される前にモデレーターによってチェックされる必要があります。

この機能をサポートするために、上記のデータベース スキーマに可能な変更を提案してください。

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 に答える