weixin_38703076
浪子君
采纳率0%
2019-08-22 17:58 阅读 277

asp.net mvc资源竞争问题

5

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • jinkuang45 冰川711 2019-08-22 20:18

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

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2019-08-22 23:56

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

    点赞 评论 复制链接分享

相关推荐