Всем привет народ!
Нужна ваша помощь.
Есть задача генерации промокода, состоящего из 6ти знаков.
Каждый знак может принимать одно из 62 значений: [a-zA-Z0-9].
Промокоды должны быть уникальными в базе данных.
Самый простой способ на мой взгляд, это просмотр таблицы с промокодами, выбор "наибольшей" строки, увеличение этой строки на условную единицу.
К примеру, делаем запрос в базу, вытаскиваем "наибольшую" строку. Пусть это будет "AAAAAA".
Прибавляем к строке единицу. Получается "AAAAAB". Добавляем запись в таблицу с промокодами.
Минус тут в том, что промокода становятся "предсказуемыми".
Была мысль переводить первичный ключ в строку, но в нём 8 байт, в каждом байте 256 значений, в то время как в промокоде 6 знаков с 62 возможными значениями.
Есть у кого-нибудь какие-нибудь идеи, как это проще обыграть?