asp.net mvc资源竞争问题

有一个这样的需求:Product表中每条记录都是唯一的,且可以绑定到唯一的一个User,
User对于Product是一对多,绑定成功后就会在UserProductList表中增加一条相关记录。我在网页上面提供一个功能,每个Product行提供一个复选框,供User绑定到Product,用户可勾选想要的Product。
点击提交就可绑定到Product。现在问题是:如果多个用户同时选中某个Product,并点击按钮,由于数据表UserProductList中ProductID具有唯一索引,所以只可能有一个User绑定到了Product。所以,有没有办法让同时只能有一个用户选中Product?当一个Product被勾选时,其他用户就不能勾选了?xie'xie

首先 一对多的话就不需要中间表了吧, 直接 product里面加个user字段就好了啊,
其次给页面复选框的时候就判断有用户的product就不显示就好了 当然 不排除 A B同时浏览了 页面 都显示了 C product 然后A B都选了 提交,
这个就是在提交的时候 做个判断, 总会有先选的,后选的就提示product被抢了就好了啊,就是个手快有 手慢无呗
你要是想做那种web端实时的交互 就得 研究websocket了

宏观上看,多个用户同时操作,但是微观上,肯定有先后,数据库基于事务,遇到重复,则后面的更新会失效,丢出错误。
你用try catch捕获以后,给用户提示就可以了。