gpt4 book ai didi

sql-server-2008 - 锁定用户记录并防止编辑?

转载 作者:行者123 更新时间:2023-12-02 12:22:00 26 4
gpt4 key购买 nike

在开发新应用程序时,客户向我提出了具体要求。他们希望防止多个用户同时编辑同一条记录。例如,如果用户 1 登录应用程序,则搜索记录,然后选择该记录。有几种不同的形式显示所选记录的数据。例如,可以是人口统计形式、家庭信息等。假设我们有用户 2 登录并选择相同的记录。在这种情况下,我们希望防止他们同时编辑任何表单。我想知道我的方法是否合适或者是否有更好的方法。接下来我要做的是:

  • 用户选择一条记录,自动将该记录保存在Lock表中
  • 锁定表有RecID(自动增量字段)、UserID(系统中每个用户的唯一ID)、SelectedID(记录用户选择的内容)和DateTime(时间戳)
  • 然后我禁用前端每个表单中的所有Edit 按钮。
  • 在后端,我将 Lock 表连接到每个更新查询。例如:

    <cfquery name="updateDemo" datasource="#dsn#">
    Update dbo.Demographic
    Set LastName = 'Kelly',
    FirstName = 'Mike',
    DOB = '07/06/1967'
    From Demographic AS D
    Left Outer Join dbo.Lock AS L
    On L.SelectedID = D.SelectedID
    Where RecID = '123132'
    And L.UserID = Session.UserID
    </cfquery>

在上面的查询中,我加入了将更新到 Lock 表 SelectedID 的表。这样,只有选定的记录才会更新,并且我们确保锁定表中的用户 ID 与 session 用户 ID 匹配。用户可以随时通过点击系统中的解锁按钮来解锁所选记录。我不确定这个方法是否是最好的。到目前为止我还没有发现任何问题,但这段代码仍处于开发阶段。如果有人有任何建议,请告诉我。我在前端使用 SQL 2008、ColdFusion 2016、JQuery 和 Bootstrap 3。

最佳答案

您的解决方案应该可行,但听起来有点复杂。我会:

  1. 将 UpdatedAt 列添加到人口统计表中并更新它保存时使用 getdate() 。
  2. 将 UpdatedAt 字段添加到表单中,并使用表中的记录数据预填充该字段。
  3. 更新时请确保表中的updatedAt字段等于表单数据中的updatedAt字段。如果 updateAt 则抛出错误表中的字段比表单中的 UpdatedAt 数据新。

关于sql-server-2008 - 锁定用户记录并防止编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52276606/

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