共享数据问题

发布于 2024-08-30 05:17:28 字数 145 浏览 8 评论 0原文

我正在开发 ASP.NET 在线商店。每个产品都有一个实体,即使用户出售它,它的实体也应该减少。 因为这个字段是所有用户共享的,所以它可能是负数(因为共享数据问题)。 现在,我该如何预防这个问题呢?我可以为此使用交易吗?如果可以,我应该使用什么隔离级别?如果没有,我该怎么办?

I am working on an ASP.NET Online Shop. every products has an entity and even a user sells it, its entity should be decreased.
because this field is shared between all users, it may be negative (because of the shared data problem).
Now, how can I prevent this problem? Can I use transaction for this? If I can, what the isolation level should I use? And if not, what should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

攒眉千度 2024-09-06 05:17:28

如果可能的话,我建议进行一些设计更改。我不会减少/增加,换句话说更新字段,而是在每次销售时插入一条记录。然后我将创建一个存储过程并安排它定期运行。

这将确保一次只有一个进程更新计数器。

这是我所知道的保证字段 100% 一致的唯一方法。

有些人可能会建议悲观锁——我在任何情况下都不会使用它。

I would recommend to make some design changes if possible. Instead of decreasing/increasing, in other words updating a field, I would insert a record every time a sell is made. Then I would create a stored procedure and schedule it to run it on regular basis.

This will assure that only one process at a time updates the counter.

This is the only way I know to guarantee 100% the field will be consistent.

Some people may suggest pessimistic lock - I would never use it under any circumstances.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文