質問回答サイトをやっています。苦情調整プロセスのテーブルをいくつか設計する必要があります。このプロセスでは、すべてのユーザーが質問に対して苦情を申し立てることができ、モデレーターは、質問に関する特定の種類の苦情が一定数に達すると、苦情を受け入れることができます。
詳細に:
ユーザーが質問します。次に、この質問を読んだ別のユーザーが、苦情の種類にフラグを立てたいと考えています。
このユーザーが何らかの苦情を含む質問にフラグを立てると、その質問は保存されます。フラグには type プロパティ (ComplaintA、ComplaintB、ModeratorAttention、..) があります。
モデレーターは、すべての質問に関するフラグを表示できます。質問に関する ComplaintA タイプのフラグの数が一定数 (10 のような定数) に達すると、モデレーターはこれらのフラグを受け入れます。
次に、同じタイプのこれらのフラグがメッセージとともに保存されます。このメッセージは、フラグ作成者 (ProcessType が ComplaintsAccepted) で問題が発生したときに表示されます。
次に、質問をしたユーザーが、質問を修正した後、モデレーターの注意にメッセージ付きのフラグを送信できます。モデレーターは、修正が満足のいくものである場合 (ProcessType が ResolutionAccepted)、苦情の解決を受け入れることができます。
私のドラフトデザインの詳細:
Users (Table of Sql Membership Provider)
-----
- UserId
- Password
- Email
-...
Questions
---------
- QuestionId
- ...
Flags
----------
- FlagId
- QuestionId
- FlaggerId --> Flagger is a user
- FlagType --> ComplaintA, ComplaintB, ModeratorAttention
- FlagMessage
ModeratorProcesses
------------------
- ProcessId
- ProcessMessage
- QuestionId
- FlagType
- ProcessType --> ComplaintAccepted / ResolutionAccepted / DeleteAccepted
- ModeratorId --> Moderator is a user
- DateOfProcess
テーブル関係: ModeratorProcesses - 1:m - フラグ - n:1 - 質問
これは、このプロセスにとって適切なデータベース設計ですか?