разработка базы данных программы лояльности

0

У меня есть магазин электронной торговли, и я собираюсь сделать программу лояльности. После каждой покупки пользователь получает бонусы на свой счет.

Я имею:

  1. таблица users
  2. таблица orders

Мне нужно понять, как это сделать правильно. Мои мысли:

  1. Создайте таблицу user_bonuses (user_id, order_id, bonuses)
  2. Создайте новый столбец в таблице users - bonuses
  3. Создайте новый столбец при orders - bonuses
Теги:
database-design

1 ответ

1

Во-первых: между users и orders существует взаимосвязь. Тогда у вас есть users ПК как FK в orders. Таким образом, вы можете установить bonuses в orders. Если вы установите его users, вы не можете найти этот вопрос: в каких orders пользователь получает бонусы. Таким образом, при настройке bonuses на orders вы сохраняете больше информации.

Тем не менее, вы можете использовать другой столбец для users чтобы удерживать сумму всех бонусов users. В этом столбце нет необходимости в дополнительных конструкциях. Но это связано с количеством записей orders.

Второе: получение bonuses в виде столбца или таблицы.
Это связано с некоторыми условиями:

  1. данные (столбцы) bonuses. Если у вас много колонок в bonuses, лучше получить новую таблицу и (исходя из моей первой точки) связать ее с orders.
  2. Если в bonuses таких как amount и created_date, есть несколько столбцов, лучше держать их в виде столбцов в orders.
  3. Но вы можете использовать новую таблицу типа bonuses_types и сохранить всю общую и базовую информацию обо всех bonuses. Затем, основываясь на 1 или 2, вы можете использовать bonuses в качестве таблицы или столбцов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню