Генерация уникальных серийных номеров для лекарств в фармацевтической промышленности - PullRequest
0 голосов
/ 04 ноября 2019

В передней части есть форма для выбора букв и цифр, которые будут включены в генерацию серийного номера UNIQUE . Он может содержать как UpperCase & LowerCase (aA bB), так и числа от 0-9 .

НО НЕТ СПЕЦИАЛЬНЫХ символов.

Пользователь также может ввести максимальную длину для серийного номера. Минимальная длина - 10, максимальная - 20 . Таким образом, пользователь может выбрать между 10 и 20. Пользователь должен также выбрать минимум 5 алфавитов и 2 цифры . Серийный номер не может начинаться с цифр, он всегда должен быть альфа-символом.

Если мне нужно 100 Количество (пакетов), то, используя выбранные альфа-символы и числа, нам нужно сгенерировать 100 различных серийных номеров (в этом примере я мог бы выбрать «A, B, C, D, E, 1,2» в начале). Альфа-Char и Числовые повторы также допускаются. Пример для серийных номеров длиной 10, затем AAAaaAAAAA, AAAAAA11AA и т. Д.

Итак, переменные - это Количество и Альфа-символы + Числа.

Можете ли вы помочь мне сгенерация серийного номера в соответствии с валидациями, а также уникальность в приложении.

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

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Это один из способов, вы можете расширить его, если хотите. Он охватывает:

  • начиная со случайной буквы
  • переменная длина
  • уникальность
  • буквы и цифры (но только заглавные буквы)

Итак, расширен, если вам нужно что-то более сложное:

SELECT CHAR((RAND()*25 + 65)) -- generate random letter (always start with latter)
       +
       REPLICATE -- varible string (replicating GUID here and the GUID is tend to be unique)
       (
            REPLACE(NEWID(), '-', '')
           ,ABS(CHECKSUM(NEWID())) % 3 + 1 -- this will give us one of the following numbers: 1, 2, 3
       );

Мы используем GUID и REPLICATE для генерации переменной длины и уникальности. Вы можете добавить еще одну букву или символ, чтобы новая строка всегда была не менее 10 символов.

0 голосов
/ 04 ноября 2019

Вместо SQL Server вы можете сделать это из внешнего интерфейса, используя Regex и Javascript

[a-zA-Z0-9]{10}

Это сгенерирует следующую последовательность

  • QwDj7X4gfM
  • H3G0uCs43Q
  • TIoXncEK5N

Подробнее Демо

...