Создать набор «кодов купонов» на основе алгоритма; нет необходимости хранить коды

У меня есть ситуация, когда мы распечатываем серии «дисконтных карт», где на карте напечатан уникальный код, который пользователь может обменять на скидку в интернет-магазине.

Мы создаем так много этих карточек и так мало из них фактически используем, что я Мне нравится использовать какой-либо способ идентификации действительного кода с помощью метода, а не хранить каждый отдельный код в базе данных. Мы создаем около 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_ ... и потенциально видеть, как / когда выдаются карты, что дает наилучшую отдачу.

Я просто крутю колеса, когда мне нужно просто хранить каждый код в базе данных? (Или просто развлекаетесь?): )

8
задан drewjoh 10 May 2011 в 21:21
поделиться