Как правильно сгененрировать номер фактуры?
Запись не будет завершена — ничего страшного, номера фактур должны быть последовательны и только.
Уточнение: хронологически последовательны, но это неявно выполняется, если дату документа присваивать вместе с номером.оптимистичной блокировкойНет. Нужна пессимистическая.Пессимистическая блокировка схожа с принципом Мерфи. Она предполагает, что если что-то плохое может случится, это обязательно случится. В отличии от пессимистической, оптимистическая блокировка предполагает что во время обновления записи в БД мы будем единственными кто ее меняет. В большинстве случаев, так и есть, так что оптимизм оправдан. Тем не менее, во время UPDATE’а мы проверяем наверняка изменилась ли запись с момента ее чтения. И если изменилась, то мы обязаны прочитать последнюю версию записи из БД и повторить нашу операцию с ней.
К сожалению один из комментариев был удален (по неизвестной мне причине), но там было предложено воспользоваться оптимистичной блокировкой. Кто что думает по этому поводу? Мне интересно кто как обрабатывает блокировки? Просто вернуть пользователю сообщение об ошибке или попытаться выполнить запрос несколько раз?