У меня есть ситуация, когда мы распечатываем серии «дисконтных карт», где на карте напечатан уникальный код, который пользователь может обменять на скидку в интернет-магазине.
Мы создаем так много этих карточек и так мало из них фактически используем, что я Мне нравится использовать какой-либо способ идентификации действительного кода с помощью метода, а не хранить каждый отдельный код в базе данных. Мы создаем около 5000 таких кодов за раз. Примерно 5 раз в год.
В идеале я бы хотел иметь что-то вроде:
$coupons->generate(5000, 'unique_salt', 'prefix_');
Которая генерировала бы 5000 «случайных» кодов, например:
prefix-23-3424-4324-3344 or
prefix-4H-34RE-22K3-PE3W
Уникальная соль
и ] prefix_
будет сохранен в базе данных. Эти коды затем можно будет проверить с помощью prefix_
для поиска соли
и определения кода как действительного или недействительного.
У меня есть форма этой работы, используя число как соль, чтобы найти числа, делящиеся на соль, а затем изменить порядок цифр так, чтобы оно выглядело случайным. С достаточно длинными кодами потребуется некоторая работа, чтобы выяснить закономерность. Но я' Я бы хотел подумать, что есть способ получше ... так как существует очень много чисел, которые дают большое количество кодов, которые делятся на соль
.
(Например, соль 2 даст 5 000 коды от 1 до 10 000 (и было бы легко увидеть шаблон) ... но соль 14000 даст нулевые коды от 1 до 10 000)
Другое преимущество этого заключается в том, что я могу генерировать купоны по мере необходимости (например, когда мы предоставляем физическим лицам скидку на индивидуальной основе), и иметь возможность отслеживать, какие купоны используются, когда и т. д. на основе prefix_
... и потенциально видеть, как / когда выдаются карты, что дает наилучшую отдачу.
Я просто крутю колеса, когда мне нужно просто хранить каждый код в базе данных? (Или просто развлекаетесь?): )