【问题标题】:Recognition of changed data in a multi user database识别多用户数据库中的更改数据
【发布时间】:2017-07-06 13:01:14
【问题描述】:

我有一个可供多个用户访问的数据库。 例如User 1 检索表"Test" 中所有可用数据集的列表。 User 2 做了同样的事情,之后两个用户都得到了相同的数据集。

所以现在,如果User 1 想用Index 1ABC 写入数据集,他可以这样做并且数据集是持久的。 但是如果User 2 NOW 想用Index 1ABB 写入数据集,他怎么知道数据集已经更新了?

是否存在多用户数据库访问模式,或者我可以只使用散列算法来获取是否有更新的数据集?

或者还有其他方法吗?

【问题讨论】:

  • 关键字是乐观锁定..“解决方案2:-使用时间戳数据类型”很好..codeproject.com/Articles/114262/…
  • 假设您的应用程序是异步的,并且您正在检索数据,查看它,然后进行更改,您需要在与写入数据库相同的 sql 操作中处理数据更改的检查,所以你可以“使用散列算法来获取是否有更新的ataset”但是如果你这样做然后回去写你仍然可以争用

标签: c# database hash multi-user


【解决方案1】:

这里有许多可能的答案,很大程度上取决于您的应用程序架构。

两个用户会同时在同一行上工作吗?如果是这样,如果他们对应该存在哪些数据有不同的想法,这听起来像是一个需要考虑和解决的业务问题。

也就是说,如果您的前端正在接收数据然后尝试回写,则使用时间戳或校验和作为验证的一部分是处理此解决方案的常见且有用的方法。

如果我正在实现它,我会使用存储过程并强制我的应用程序将校验和传递回 proc。该过程将检查校验和是否仍然准确,如果不是,写入将失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多