从并行MYSQL(.NEt连接器)事务中读取

| 我遇到了一个非常有问题的问题。 我正在开发一个在线订购系统(现实世界中发生的事件)。用户正在我的站点中订购事件(通过写入MYSQL DB的.NET Web服务来实现)。 这2个相关的表是:EVENTS和EVENTonFIELD(FIELD是用户正在订购的资源)。 (用户可以订购单个或多个资源) 我的问题是-阻止同时订购同一资源(可能是通过并行调用我的W.S)。该实现是一个MYSQL .NET连接器(在C#中)事务,其中包括对EVENTS和EVENTonFIELD的插入(以及其他逻辑)。 我遇到了这样的情况:我有事务A和事务B(两者相同:相同的用户X,资源Y和时间Z)。 执行事务A(在我确认资源可用之后)。 在这段时间内(尚未提交tn A),将执行事务B(当我验证资源是否可用时,由于tn A尚未提交,因此我看到资源可用)。 然后-A已提交,B已提交,并且: 我为此用户有两次活动。 我在这里不能使用主键,因为在某些情况下,我允许双重资源排序。 有什么想法如何预防这种情况? 我唯一想到的是在事务B期间,以某种方式还读取并行事务(A)并检查是否存在冲突。这可能吗? 谢谢!!     
已邀请:

要回复问题请先登录注册