如何为多个用户一次选择多个记录进行编辑?
问题描述:
我正在使用一个Django后端与postgresql。如何为多个用户一次选择多个记录进行编辑?
假设我有一个名为Employees
的表的数据库,其中有大约20,000条记录。
我需要允许多个用户编辑和验证Area Code
字段中的每个记录Employees
。
我宁愿让用户每次查看30个记录(以减少倦怠)。
如何选择30个记录从Employees
时间发送给前端用户界面进行编辑,没有让多个用户编辑相同的记录,或重新选择已经被验证记录?
我不需要评论数据库的内容(这些是示例表和字段名称)。
答
要做到这一点的一种方法是将2个字段添加到您的表中,例如assigned_to
和verified
。当允许用户查看该员工时,您可以更新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这个请求时间。为了避免这种情况发生,另一种可能性可能是将员工表分成不重叠的每个用户的组。这将确保没有用户会永远具有相同的员工
这是否自动更新数据库?如果是这样,我认为这将有很大的帮助 –
你是什么意思?当你在你的视图中执行动作时数据库会更新 – Written
我已经阅读过有关查询数据库的“快照”并根据该快照而不是当前版本进行查询的查询,但我很困惑。你说的很好,谢谢。 一旦我实现它,我会将其标记为已解决。 –