Laravel избегает дублирования вставки последовательного из другой таблицы

#php #laravel #eloquent

#php #laravel #красноречивый

Вопрос:

У меня есть приложение для выставления счетов, где у меня есть таблица для выставления счетов таблица для нумерации счетов, потому что у пользователя может быть более одной нумерации счетов, и каждая нумерация имеет свою собственную последовательность, поэтому, когда пользователь собирается создать выставление счетов, он выбирает нумерацию, на интерфейсе система показывает возможные последовательныес помощью которого будет создан биллинг, «возможно», потому что, если другой пользователь создаст биллинг до него, он назначит последовательный. Таким образом, последовательность окончательно назначается в серверной части с помощью этого кода:

 ...
$numbering = BillingNumbering::find($request->billing_numbering);

$number = $numbering->current_number   1;

$billing->number = $number;
$numbering->current_number = $number;
$numbering->used = true;

$numbering->save();

$billing->save();
  

Где сначала я получаю нумерацию счетов, получаю текущее число и увеличиваю его на единицу и немедленно обновляю таблицу для будущих запросов.

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

Как я могу добиться этого без дублирования чисел?

Комментарии:

1. Можете ли вы предоставить код миграции для этой таблицы?

Ответ №1:

вы можете сделать номер счета уникальным. Если я предполагаю, что это ваш реальный код. почему вы сначала сохраняете «нумерацию», а не «выставление счетов».