在MySQL中更新网桥实体

在MySQL中更新网桥实体,mysql,transactions,Mysql,Transactions,我一直无法解决的问题是更新桥接实体。例如,我有下面的图表, 考虑到可能同时有多个更新查询,例如 目前,学生1正在注册1、2、3、4、5 [查询]让学生1注册到第1、2、5、6、7单元 [查询]让学生1注册1、3、5、7、8单元 预期结果是: 学生1报名参加第1、2、5、6、7单元 或学生1报名参加第1、3、5、7、8单元 对于这些更新,我可以想出两种方法来进行更新 删除学生1的所有入学记录,并向学生1插入新的入学记录 找出有哪些变化,然后插入新的注册并删除删除的注册 问题是,我能想到这

我一直无法解决的问题是更新桥接实体。例如,我有下面的图表,

考虑到可能同时有多个更新查询,例如

  • 目前,学生1正在注册1、2、3、4、5
  • [查询]让学生1注册到第1、2、5、6、7单元
  • [查询]让学生1注册1、3、5、7、8单元
预期结果是:

  • 学生1报名参加第1、2、5、6、7单元
  • 或学生1报名参加第1、3、5、7、8单元
对于这些更新,我可以想出两种方法来进行更新

  • 删除学生1的所有入学记录,并向学生1插入新的入学记录
  • 找出有哪些变化,然后插入新的注册并删除删除的注册
  • 问题是,我能想到这么多复杂的情况,可能会把结果搞砸,我不知道该怎么办了

    • 我可以使用交易系统解决这种情况吗?它是如何工作的
    • 在生产环境中解决此类并发连接的正常方法是什么

    如果您能给我一个详细的解释,或者给我一个可以帮助我理解和解决这种情况的任何资源的链接,我将不胜感激。

    对数据的这种不一致的更改不是程序问题,而是管理问题。我想学生可以在不同的时间段(学期?)注册不同的单元因此,我将在桥接表中保留时间段。@P.Salmon让我们保持场景简单。我想问的是关于更新桥梁实体的问题。@Akina你能解释更多吗?你所说的管理问题是什么意思?我的意思是,处理数据的规则应该排除所描述的情况。在所描述的情况下,只有一个人可以决定应该获得两个理论上可能的最终版本(此外,最终状态实际上可能部分包括来自两个来源的更改)。