2012-08-27 30 views
1

我有一個關於建模以下情形的有效方法問題:請求審批數據庫模型

我們有一個「請求」,它可以有以下狀態:

  • 未決
  • 批准
  • 拒絕
  • 取消

請求由用戶發出,並且可以被一個或多個用戶(具有更高的角色)批准/拒絕。有一些規則決定了哪些用戶應該將請求分配給批准,並且只有當相應列表中的所有人批准該請求時才能真正批准。

我有一個請求表與必要的信息,並在此刻的用戶表。我必須保存以下信息:需要批准請求的用戶以及他們如何「投票」。

我該如何以有效的方式設計?

謝謝

回答

1

我會用一個表votes的列request_iduser_idvote

創建新請求時,爲每個必須在votes(如new_request_id,approver_id,0)中批准一行的用戶插入。

當用戶批准時,將vote設置爲1.如果用戶拒絕,則將其設置爲-1。這種方式0意味着「沒有投票」。

您也可以使用兩個表格,一個用於投票,另一個用於需要的批准者。但我並沒有看到很大的優勢。當然,如果你需要的話,你可以添加一個列的投票時間戳。

+0

謝謝,聽起來不錯!我幾乎肯定會使用這個解決方案 – AndaP