gpt4 book ai didi

javascript - Java/Javascript -> 多个用户在同一个 sql 数据源上工作,该数据源必须在前端保持一致

转载 作者:行者123 更新时间:2023-12-03 08:09:40 25 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序,该应用程序在前端显示来自 SQL 表的数据。

更新:

数据库是PostgreSQL 9.4

我的应用程序是一个 Maven Web 应用程序,使用 java servlet 进行逻辑处理,使用 jsp 页面进行表示。

有多个用户处理相同的数据(与数据源相同的sql表)

如何才能始终为所有用户提供相同的数据?

示例:

  • 用户 A 和 B 查看包含数据的 html 表(用户 sql 表)
  • 用户 A 对数据进行更改,例如将新用户添加到 sql 表中(通过按钮触发 sql inset 语句)
  • 用户 B 应该能够看到对该表所做的更改

截至目前,只有当用户 B 刷新页面时,才会再次从 sql 表中提取数据,并且他能够看到其他用户所做的更改。

问题是我目前的状态是:

  • 用户 A 和 B 查看所有用户的 html 表
  • 用户 A 删除用户 C
  • 用户 A(尚未看到用户 C 已从 sql 表中删除)想要更改用户 C 的属性(例如更改其姓名)
  • 然后他进行了名称更改,但 sql udate 查询(由按钮触发)将失败,因为用户 C 已被用户 A 从 sql 表中删除

是否有任何方法可以向多个用户显示始终最新的相同数据,以便两个用户始终可以处理完全相同的数据?

最佳答案

您可以使用 WebSocket 连接来让您的用户保持最新状态。对 API 的每次调用都必须将相关更改推送给所有受影响的用户。根据您的 API 设计,这可能根本不难实现。

如果您只是想保持一致性,请实现某种记录锁定。在表中添加一个新列,例如last_updated 并让通过 API 执行的任何 UPDATEDELETE 操作失败,直到 last_updated 列与您的用户一致发送到服务器。这将确保只有拥有正确当前记录的用户才能对其发出 UPDATEDELETE 语句。

一些further reading关于 Java 中的 WebSocket

关于javascript - Java/Javascript -> 多个用户在同一个 sql 数据源上工作,该数据源必须在前端保持一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com