2017-07-06 55 views
0

我有一个数据库,可以被多个用户访问。 例如User 1将检索表​​中所有可用数据集的列表。 User 2做同样的事情,并且两个用户之后都得到相同的数据集。识别多用户数据库中已更改的数据

因此,现在,如果User 1想要将ABC写入到Index 1的数据集中,他可以这样做,并且数据集是持久的。 但如果User 2现在想要写ABBIndex 1到数据集,他怎么知道,该数据集已更新?

有没有多用户数据库访问模式或我可以只使用哈希算法来获得,如果有一个更新的数据集?

或者还有其他方法吗?

+0

关键词是乐观锁定..“解决方案2号: - 使用时间戳数据类型”好.. https://www.codeproject.com/Articles/114262/6-ways-of-doing-locking-in- NET-Pessimistic-and-opt – levent

+0

假设您的应用程序是异步的,并且您正在检索数据,查看数据,然后进行更改,则需要在写入数据库的同一SQL操作中处理数据更改检查,因此你*可以*“使用散列算法来获得是否有更新的ataset”,但如果你这样做,然后回去写,你仍然可以争论 – theo

回答

0

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

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

也就是说,如果您有接收数据,然后试着写回,使用一个时间戳或校验和验证的一部分,是处理这种解决方案常见的和有用的方式的前端。

如果我实现这个我会用一个存储过程,并迫使我的应用程序通过校验回PROC。该过程将检查校验和是否仍然准确,如果不是,写入将失败。