我有一个关于建模以下场景的有效方法的问题:
我们有一个“请求”,它可以具有以下状态:
请求由用户发出,并且可以由一个或多个用户(具有更高角色)批准/拒绝。某些规则决定了哪个用户应该将请求分配给批准,并且只有在相应列表中的所有用户都批准它才能真正获得批准。
我有一个包含必要信息的Request表,以及一个User表。我必须保存以下信息:需要批准请求的用户以及他们如何“投票”。
如何以有效的方式设计?
谢谢
答案 0 :(得分:1)
我会使用包含votes
,request_id
和user_id
列的表格vote
。
创建新请求时,为每个必须在votes
中批准一行的用户插入(new_request_id,approver_id,0)。
当用户批准时,将vote
设置为1.如果用户拒绝,请将其设置为-1。这种方式0表示“尚未投票”。
您还可以使用两个表,一个用于投票,一个用于所需的批准者。但我没有看到很大的优势。当然,如果需要,您可以为投票时间戳添加一列。