У меня есть магазин электронной торговли, и я собираюсь сделать программу лояльности. После каждой покупки пользователь получает бонусы на свой счет.
Я имею:
users
orders
Мне нужно понять, как это сделать правильно. Мои мысли:
user_id
, order_id
, bonuses
)users
- bonuses
orders
- bonuses
Во-первых: между users
и orders
существует взаимосвязь. Тогда у вас есть users
ПК как FK в orders
. Таким образом, вы можете установить bonuses
в orders
. Если вы установите его users
, вы не можете найти этот вопрос: в каких orders
пользователь получает бонусы. Таким образом, при настройке bonuses
на orders
вы сохраняете больше информации.
Тем не менее, вы можете использовать другой столбец для users
чтобы удерживать сумму всех бонусов users
. В этом столбце нет необходимости в дополнительных конструкциях. Но это связано с количеством записей orders
.
Второе: получение bonuses
в виде столбца или таблицы.
Это связано с некоторыми условиями:
bonuses
. Если у вас много колонок в bonuses
, лучше получить новую таблицу и (исходя из моей первой точки) связать ее с orders
.bonuses
таких как amount
и created_date
, есть несколько столбцов, лучше держать их в виде столбцов в orders
.bonuses_types
и сохранить всю общую и базовую информацию обо всех bonuses
. Затем, основываясь на 1 или 2, вы можете использовать bonuses
в качестве таблицы или столбцов.