【问题标题】:Prevent user from editing the same record防止用户编辑同一条记录
【发布时间】:2013-05-15 09:59:22
【问题描述】:

我正在使用 MySQL 和 Java 在同一网络上开发多用户应用程序。 我正在寻找的是: 用户 A:修改记录 100 用户 B:尝试查看或修改同一条记录 100。

我希望应用程序为用户 B 返回错误消息,该记录已被另一个用户编辑。

我该怎么做?

【问题讨论】:

标签: java mysql percona


【解决方案1】:

在您希望防止多个用户更新的数据库表中包含 edit_timestamp,每次有人编辑该行时您都会更新它。

在您的表单中,包含一个隐藏字段 edit_timestamp,其中的值存储在您正在编辑的行中。

当您收到编辑表单时,请检查您正在编辑的行的 edit_timestamp 是否未更改。如果它已更改,则有人编辑了该行并向用户抛出错误。如果未更改,请更新行和 edit_timestamp 字段

【讨论】:

  • 我会添加一个edited_by字段来存储最后编辑的用户的用户名,如果对业务很重要的话,我会添加一个审计表来存储多个编辑。记录 ID、用户 ID、日期、更改内容、新旧值等
猜你喜欢
  • 1970-01-01
  • 2015-11-26
  • 2021-10-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多