2017-04-25 53 views
0

我正在使用一个Django后端与postgresql如何为多个用户一次选择多个记录进行编辑?

假设我有一个名为Employees的表的数据库,其中有大约20,000条记录。

我需要允许多个用户编辑和验证Area Code字段中的每个记录Employees

我宁愿让用户每次查看30个记录(以减少倦怠)。

如何选择30个记录从Employees时间发送给前端用户界面进行编辑,没有让多个用户编辑相同的记录,或重新选择已经被验证记录?

我不需要评论数据库的内容(这些是示例表和字段名称)。

回答

0

要做到这一点的一种方法是将2个字段添加到您的表中,例如assigned_toverified。当允许用户查看该员工时,您可以更新assigned_to,这可以是验证用户的外键。这将创建一条记录,防止员工被选中两次。 assigned_to也可以作为验证此员工的记录以供将来参考。

verified可能是一个简单的布尔字段,跟踪,如果员工已经被验证,当用户确认的验证

实际的选择可以这样做可以更新:

employees = Employee.objects.filter(assigned_to=None, verified=False)[:30] 

然后

for emp in employees: 
     emp.assigned_to = user 
     emp.save() 

注意:这仍然可能引起的竞争条件,如果2个用户进行精确地在SAM这个请求时间。为了避免这种情况发生,另一种可能性可能是将员工表分成不重叠的每个用户的组。这将确保没有用户会永远具有相同的员工

+0

这是否自动更新数据库?如果是这样,我认为这将有很大的帮助 –

+0

你是什么意思?当你在你的视图中执行动作时数据库会更新 – Written

+0

我已经阅读过有关查询数据库的“快照”并根据该快照而不是当前版本进行查询的查询,但我很困惑。你说的很好,谢谢。 一旦我实现它,我会将其标记为已解决。 –

相关问题