【问题标题】:Put users commands on hold while other user's command finished ASP.Net在其他用户的命令完成时暂停用户命令 ASP.Net
【发布时间】:2018-12-27 17:43:47
【问题描述】:

我正在使用 asp.net 和 C# 构建一个 Web 应用程序。 该应用程序有多个用户同时工作并向其输入家庭信息 - 包括家庭成员的信息。 家庭成员的 ID 是使用特定于应用程序的算法生成的,家庭的 ID 也是基于表中最后一个 ID 生成的,但是在测试时,如果两个用户同时输入两个不同的家庭信息,则ID 会相互干扰,导致主键重复。 关于如何在用户输入数据时暂停其他用户进程的任何想法? 我正在使用 ASP.Net、C# 和 MySQL。

【问题讨论】:

  • 你是如何生成ID的?为什么不让 MySQL 使用自动递增的主键生成它们。这样,用户可以同时工作。没有一个称职的网络应用程序会阻止用户同时做事......
  • 创建单独的锁定数据库表,将userID映射到familyID;在编辑此表之前检查。当然,用户保存此表后必须再次清除。或者更糟糕的是,当用户刚刚离开应用程序时,锁可能会永远保留。立即想到快速修复。
  • 在客户端必须生成 id 的情况下,最好的办法是使用Guid

标签: c# mysql asp.net multiple-users


【解决方案1】:

根据您的帖子,2 种可能的解决方案

  1. 使用增量主键(当您将记录放入数据库时​​, 数据库提供新的 uniq 密钥)。数据库自动生成新密钥

  2. 为主添加序列 钥匙。当您输入记录时 - 首先向数据库询问下一个值,然后 使用结果作为主键值。序列保证密钥将是 独一无二。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2020-12-07
    相关资源
    最近更新 更多