Проблема с общими данными - PullRequest
0 голосов
/ 21 апреля 2010

Я работаю над интернет-магазином ASP.NET. каждый продукт имеет сущность, и даже пользователь продает ее, ее сущность должна быть уменьшена. поскольку это поле является общим для всех пользователей, оно может быть отрицательным (из-за проблемы с общими данными). Теперь, как я могу предотвратить эту проблему? Могу ли я использовать транзакцию для этого? Если я могу, какой уровень изоляции я должен использовать? А если нет, что мне делать?

1 Ответ

0 голосов
/ 21 апреля 2010

Я бы порекомендовал внести некоторые изменения в дизайн, если это возможно. Вместо того, чтобы уменьшать / увеличивать, другими словами, обновляя поле, я вставляю запись каждый раз, когда совершается продажа. Затем я бы создал хранимую процедуру и запланировал ее регулярное выполнение.

Это гарантирует, что только один процесс одновременно обновляет счетчик.

Это единственный известный мне способ гарантировать 100% соответствие поля.

Некоторые люди могут предложить пессимистическую блокировку - я бы никогда не использовал ее ни при каких обстоятельствах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...