генерировать уникальный ваучер / код для каждого клиента / пользователя - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь создать такой сайт, как grou , который является платформой для продажи ваучеров на некоторые товары в торговых точках.

В customer или user можно купить vouchers и погасить в автономном магазине (или у продавцов) на основе купленных ими vouchers.

Я запутался в логике или дизайне базы данных по поводу погашения ваучера.Что я хочу спросить:

  1. Как создать уникальный код для каждого купона / ваучера , который users купил.Каждый ваучер, размещенный на сайте, имеет первичный ключ.Если 10 клиент купил такой же ваучер, как избежать дублирования при его использовании.Если я добавлю уникальный код , я должен добавить в таблицу vouchers или сгенерировать ее после users проверки.

  2. Должен ли я сделать таблицу для выкупа и выкупаподробно.И как дать знак, если этот ваучер был использован.

Пожалуйста, дайте мне несколько советов.Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Первая проблема

Вы можете использовать идентификатор ваучера и, например, идентификатор пользователя.Так что, если у нас есть 2 пользователя и 1 ваучер, то эти уникальные коды будут выглядеть так: 1-1, 1-2.

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

Но лучшим подходом будет, если вы будете использовать отношения многие ко многим.Вы создаете таблицы Users, Vouchers и UserVouchers и соединяете функции между ними.Пользователь может иметь много пользовательских ваучеров, но пользовательский ваучер имеет только один ваучер.Посмотрите на мою базу данных: http://www.laravelsd.com/share/8O0xtZ. Это называется pivot, и вы создаете его, когда подключаете пользователя с помощью ваучера.

Вторая проблема

ОтUserVoucher В зависимости от того, сколько раз вы использовали этот ваучер.Вам нужно иметь только столбец в таблице ваучеров, например, max_users, и если вы пишете там, например, 4, вам нужно предотвратить создание нового взаимодействия, если у вас есть 4 строки в UserVoucher или во внешнем интерфейсе, вы можете проверить это и нет показать кнопку покупки.Оба безопасных пути будут хороши;)

0 голосов
/ 21 октября 2018

Я думаю, вы должны рассмотреть много ко многим между users и vouchers таблицами / моделями.В основном это означает, что многие users могут иметь много vouchers и наоборот.

В таблице могут быть другие поля, такие как redeemed (это может быть поле dateTime) и notes/ details.Наличие redeemed в качестве поля dateTime означает, что вы можете установить точное время, в течение которого user погасил этот ваучер.

Это можно использовать, чтобы user не выкупал ваучер несколько раз.

...