1

我对以下场景建模的有效方法有疑问:

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

  • 待办的
  • 得到正式认可的
  • 被拒绝
  • 取消

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

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

我怎样才能以有效的方式设计这个?

谢谢

4

1 回答 1

1

我会使用votes带有列的表request_iduser_idvote

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

当用户批准时,设置vote为 1。如果用户拒绝,则设置为 -1。这样 0 表示“还没有投票”。

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

于 2012-08-27T10:40:42.210 回答