Sobes.tech
Назад к вопросам
Middle+
3

Как в базе данных с двумя таблицами реализовать хранение кэшбэка?

Компании, где спрашивали
Winline

Ответ от нейросети

sobes.tech AI

Для хранения кэшбэка в базе данных с двумя таблицами обычно используют следующую схему:

  1. Таблица пользователей (Users) — содержит информацию о клиентах, например, user_id, имя, контактные данные.
  2. Таблица кэшбэка (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 = ?;