请求批准数据库模型

时间:2012-08-27 10:34:43

标签: mysql database database-design normalization

我有一个关于建模以下场景的有效方法的问题:

我们有一个“请求”,它可以具有以下状态:

  • 待定
  • 批准
  • 拒绝
  • 取消

请求由用户发出,并且可以由一个或多个用户(具有更高角色)批准/拒绝。某些规则决定了哪个用户应该将请求分配给批准,并且只有在相应列表中的所有用户都批准它才能真正获得批准。

我有一个包含必要信息的Request表,以及一个User表。我必须保存以下信息:需要批准请求的用户以及他们如何“投票”。

如何以有效的方式设计?

谢谢

1 个答案:

答案 0 :(得分:1)

我会使用包含votesrequest_iduser_id列的表格vote

创建新请求时,为每个必须在votes中批准一行的用户插入(new_request_id,approver_id,0)。

当用户批准时,将vote设置为1.如果用户拒绝,请将其设置为-1。这种方式0表示“尚未投票”。

您还可以使用两个表,一个用于投票,一个用于所需的批准者。但我没有看到很大的优势。当然,如果需要,您可以为投票时间戳添加一列。