0

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?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Mehdi Dehghani
  • 77
  • 1
  • 1
  • 3

1 Answers1

0

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.

IMHO
  • 769
  • 2
  • 6
  • 26