2015-04-06 3 views
-1

Я пытаюсь создать приложение для своего клиента, где мой клиент хочет сохранить все данные своего клиента. Он хочет создать уникальный серийный номер для своего клиента, и этот серийный номер должен быть последовательным. Его требования - 1. Для создания записи клиента должна быть форма. 2. В этой форме должно быть поле для уникального идентификатора клиента. По умолчанию это значение должно быть серийным номером, значение которого равно +1 предыдущему серийному номеру. И если ему нравится, он может изменить серийный номер в этом поле и отправить форму.Как создать уникальный серийный номер в laravel

Я нашел более простой способ сделать это, чтобы получить максимальный id из базы данных и увеличить его +1. Но что, если два человека пытаются вставить запись в db? в этом случае в базе данных будет дублироваться серийный номер.

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

заранее спасибо

+0

Во-первых, вам нужно отредактировать свой вопрос, чтобы включить образцы кода. Ваш вопрос не очень ясен. Если вы пытаетесь создать случайное число в laravel, вы можете использовать str_random (40); функция. 40 здесь длина строки для генерации – Digitlimit

+0

OP не пытается создать случайную строку. –

+0

И вопрос слишком широк. – Mysteryos

ответ

0

Лучший способ сделать это, чтобы создать дополнительную таблицу с одной колонкой для серийных номеров. Каждый раз, когда форма загружается, вы должны взять максимальный серийный номер +1 из этой таблицы и вставить это значение, а также установить значение поля серийного номера в форме для этого значения. Это позволит убедиться, что когда два человека загружают вашу форму одновременно, у них все равно будут разные порядковые номера. Это предотвратит людей, которые будут вставлять данные из чувства, будто они должны участвовать в гонках друг друга, чтобы сначала получить этот серийный номер.

Во-вторых, на столе, который отвечает за хранение информации о форме, поместите уникальный ключ в поле серийного номера, и это гарантирует, что серийный номер всегда будет уникальным при вставке в таблицу.

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

Смежные вопросы