多人填报数据丢失

同一个填报页面。一个人操作不会出现数据丢失,遗漏情况。多人操作就会出现数据丢失,遗漏。

这会是哪里出现的问题?

连接的数据库是mysql 5.7


FineReport luojian0323 发布于 2019-4-13 09:58 (编辑于 2019-4-13 10:47)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
4
城落满芯Lv6中级互助
发布于2019-4-13 10:28

数据库设计方面疏忽了多人同时写入的问题

场景:智能提交情况下,a填报时 拉出10条数据,修改其中第一条;

在未点提交之前,b填报拉出同样10条,修改其中第二条(与a不是同一条)

那么  谁先提交 谁被覆盖(丢数据)

即 a提交后,b再提交,b的第一条数据是原始的那条,主键相同,覆盖,系统会认为b改了第第二条的同时,把第一条改回原始了,提交时,实质 b改了两条数据;

解决思路:组合主键,另一个主键在数据库中(例如ID自增);这样谁提交都会记录,不会丢,只会不停的写数据库,但这个涉及到删除数据时,就比较难解决了;

  • luojian0323 luojian0323(提问者) 感谢你的回答。删除数据也是常有的事。
    2019-04-13 10:31 
  • 城落满芯 城落满芯 回复 luojian0323(提问者) 增加 审核流程,填报依旧是 不停的写,审核的作用 是 通过的保留,不通过的删除,便可保证数据库数据的唯一性
    2019-04-13 10:38 
  • luojian0323 luojian0323(提问者) 回复 城落满芯 这个未修改不更新。怎么算未修改。如果点击了单元格,没改动值算修改吗? 按道理说,未修改的地方不应该提交的。
    2019-04-13 10:47 
最佳回答
0
魏先鹏Lv7中级互助
发布于2019-4-13 13:48

再加个字段。多人填报肯定是要把填报人录进去的,把FR_username也填报进去

最佳回答
0
孤陌Lv6资深互助
发布于2019-4-14 08:42

请在数据库增加事务锁

  • 4关注人数
  • 729浏览人数
  • 最后回答于:2019-4-14 08:42
    请选择关闭问题的原因
    确定 取消
    返回顶部