1

次のシナリオをモデル化する効率的な方法について質問があります。

次の状態を持つことができる「リクエスト」があります。

  • 保留中
  • 承認済み
  • 拒否されました
  • キャンセル

要求はユーザーによって発行され、1 人以上のユーザー (より高い役割を持つ) によって承認/拒否される可能性があります。承認のためにリクエストを割り当てるユーザーを決定する特定のルールがあり、それぞれのリストの全員が承認した場合にのみ、実際に承認されます。

現在、必要な情報を含む Request テーブルと User テーブルがあります。次の情報を保存する必要があります: リクエストを承認する必要があるユーザーと、ユーザーがどのように「投票」したか。

これを効率的に設計するにはどうすればよいですか?

ありがとうございました

4

1 に答える 1

1

、およびvotes列を持つテーブルを使用します。request_iduser_idvote

新しいリクエストが作成されると、それを承認する必要があるユーザーごとに、votes(new_request_id、approver_id、0) のように 1 行挿入します。

ユーザーが承認する場合は 1 に設定voteします。ユーザーが拒否する場合は -1 に設定します。このように 0 は「まだ投票がない」ことを意味します。

1 つは投票用、もう 1 つは必要な承認者用の 2 つのテーブルを使用することもできます。しかし、私には大きな利点は見られません。もちろん、必要に応じて、投票のタイムスタンプの列を追加することもできます。

于 2012-08-27T10:40:42.210 に答える