我做了一个数据库系统就在这里:同时访问数据库;保持数据一致在所有连接
(在规范化的意见是高度赞赏,以及 - 我中有你会恨我什么我tblIsolateSensitivity做了的感觉;只有tblHAIFile有一堆布尔字段和外键)。
比方说,我们有x个终端访问数据库。 X1编辑患者01,X2编辑患者02,X3同时删除患者01。我如何确保三个终端之间的数据都是最新且一致的?
此刻,我只在查询需要完成时才查询数据(即:当用户搜索记录时,或者如果程序需要根据数据库记录验证某些内容),这意味着数据仅与用户最近的查询一样更新。这使得很难确保所有终端上的数据都是最新的。当然,对于删除的条目,我有错误处理来处理,但其余的,以及...
所以,我的问题是:你们通常如何处理这种情况?是否有这个概念的名称,以便我可以查找并阅读很长时间?
谢谢你这么多详细的说明!我不得不承认,我正在考虑对数据库上的记录进行悲观并发(不仅仅是因为我通常是pess-我的意思是现实主义者)。我认为可能发生的问题是,如果应用程序/数据库连接崩溃并且记录被锁定,直到DBA解锁所述记录。 –
@RemiDarren你的评论的最后一句话是没有问题的。任何严重的数据库系统(如Postgres,MS SQL Server,Oracle等)都会自动释放任何正常关闭或悲剧失败的连接所持有的锁。同样,由该关闭/失败连接进行的任何事务都将回滚。这些是数据库服务器的一些基本职责。 –
@RemiDarren请参阅:[悲观锁定和客户死亡](https://dba.stackexchange.com/q/37225/19079) –