Изящно обрабатывать бронирование в одно и то же время - PullRequest
2 голосов
/ 29 декабря 2008

Предположим, у меня есть та же схема базы данных, что и здесь: http://www.databaseanswers.org/data_models/driving_school/index.htm

Если клиент делает заказ, и это в тот же день и время, что и другой заказ, как я могу изящно решить эту бизнес-проблему? Кроме того, что делать, если два заказа сделаны одновременно? Это проблема параллелизма, как в случае многопоточности.

Я работаю с Sqlite, C # и ASP.NET для этого проекта.

Спасибо

1 Ответ

5 голосов
/ 29 декабря 2008

Для этого предназначены транзакции. Ваш код бронирования должен НАЧАТЬ транзакцию, подтвердить, что время доступно, используя SELECT, и, если оно доступно, ВСТАВИТЬ или ОБНОВИТЬ базу данных, чтобы сделать резервирование, наконец, ПРИНЯТЬ транзакцию.

Если время недоступно, либо НЕ ВСТАВЛЯЙТЕ, НЕ ОБНОВЛЯЙТЕ базу данных, чтобы сделать резервирование, или ОТМЕНА транзакции.

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