首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并发问题?

并发问题?
EN

Database Administration用户
提问于 2011-05-27 10:19:27
回答 2查看 235关注 0票数 4

我有一个带有MS前端的MySql (5.5)数据库。如果两个用户同时查看相同的记录,我如何使每个用户都知道对方?例如,如何显示显示另一个用户也在查看相同记录的标签?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2011-05-27 10:43:29

我可能错了,但我认为这是不可能的,除非您限制对数据的访问是通过存储过程-然后这个过程可以触发您可以向用户公开的审计机制。如果两个用户都需要知道,您还需要对审计进行轮询。

票数 4
EN

Database Administration用户

发布于 2011-05-27 14:42:03

这个过程对DB来说会有点麻烦。您不仅想知道当前记录是否正在被查看,而且还希望相互通知用户。当用户读取记录时,DB系统会快速获取数据并将其返回给用户。就DB而言,一旦数据被发送到客户端,就没有人‘查看’所述记录。从应用程序端来看,用户可能仍然在读取详细信息,但是DB已经完成了它的部分。整个过程可以在微秒内由DB完成。

为了处理实际的过程,前端应用程序将需要某种“完成读取”按钮来显式地通知其他用户( DB并不关心它已经完成的部分)。

  1. 我会做的是创建另一个读跟踪表,让我们说,重跟踪。
  2. 当用户希望从表中读取记录时,使用行id和发出select的用户的用户名将记录插入rtrack表中。
  3. 接下来,检查同一行id的rtrack表,以查看正在读取相同记录的其他用户。
  4. 使用其他用户信息(如果有的话)更新前端的通知区域。
  5. 应设置轮询间隔(或触发器),以检查rtrack表,以查看其他用户何时读取相同的记录,而当前用户仍在读取该记录。
  6. 一旦用户单击“完成阅读”按钮,就可以根据用户名/行id删除rtrack表中的相应记录。

这就是我能很快想到的。如果有更有效的方法,请告诉我。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/2975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档