Назад к вопросам
Middle+
3
Как в базе данных с двумя таблицами реализовать хранение кэшбэка?
Компании, где спрашивали
Winline
Ответ от нейросети
sobes.tech AI
Для хранения кэшбэка в базе данных с двумя таблицами обычно используют следующую схему:
- Таблица пользователей (Users) — содержит информацию о клиентах, например,
user_id, имя, контактные данные. - Таблица кэшбэка (Cashback) — хранит записи о начислениях и списаниях кэшбэка, например,
cashback_id,user_id(внешний ключ на Users), сумма кэшбэка, дата операции, тип операции (начисление/списание).
Такой подход позволяет хранить историю операций с кэшбэком и легко вычислять текущий баланс по пользователю, суммируя значения в таблице кэшбэка.
Пример структуры таблиц:
CREATE TABLE Users (
user_id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
CREATE TABLE Cashback (
cashback_id INT PRIMARY KEY,
user_id INT,
amount DECIMAL(10,2), -- положительное для начисления, отрицательное для списания
operation_date DATETIME,
description VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);
Для получения текущего баланса кэшбэка пользователя:
SELECT SUM(amount) AS cashback_balance
FROM Cashback
WHERE user_id = ?;