Таблица транзакций
Нам также нужна таблица транзакций для отслеживания платежей за заказ,
сделанных гостями в ресторан, а рестораном поставщикам для ведения
бухгалтерского учета. Мы также можем использовать ту же таблицу для записи
кредитных (гости) и дебетовых (поставщики) транзакций. Ниже приведено описание
всех столбцов таблицы транзакций.
ID
Уникальный идентификатор для идентификации транзакции.
Идентификатор
пользователя
Идентификатор пользователя для идентификации пользователя,
связанного с транзакцией.
Идентификатор
поставщика
Идентификатор поставщика для идентификации поставщика,
связанного с транзакцией.
Идентификатор Идентификатор заказа для идентификации заказа, связанного с
57
заказа
транзакцией.
Код
Идентификатор платежа, предоставляемый платежным шлюзом.
Тип
Тип транзакции заказа может быть либо кредитным, либо
дебетовым.
Режим
Режим транзакции заказа может быть офлайн, наложенным
платежом, чеком, черновиком, проводным и онлайн.
Статус
Статус транзакции заказа может быть новым, Отмененным,
неудачным, ожидающим, отклоненным, Отклонено и успешным.
Создано на
В ней хранятся дата и время, в которые создается транзакция
заказа.
Обновлено на
В ней хранятся дата и время, в которые обновляется транзакция
заказа.
Содержание
Столбец, используемый для хранения дополнительных сведений о
транзакции.
Таблица транзакций с соответствующими ограничениями выглядит так, как показано
ниже.
CREATE TABLE `restaurant`.`transaction` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NOT NULL,
`vendorId` BIGINT NOT NULL,
`orderId` BIGINT NOT NULL,
`code` VARCHAR(100) NOT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`mode` SMALLINT(6) NOT NULL DEFAULT 0,
`status` SMALLINT(6) NOT NULL DEFAULT 0,
58
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_transaction_user` (`userId` ASC),
CONSTRAINT `fk_transaction_user`
FOREIGN KEY (`userId`)
REFERENCES `restaurant`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
ALTER TABLE `restaurant`.`transaction`
ADD INDEX `idx_transaction_vendor` (`vendorId` ASC),
ADD INDEX `idx_transaction_order` (`orderId` ASC);
ALTER TABLE `restaurant`.`transaction`
ADD CONSTRAINT `fk_transaction_vendor`
FOREIGN KEY (`vendorId`)
REFERENCES `restaurant`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
ADD CONSTRAINT `fk_transaction_order`
FOREIGN KEY (`orderId`)
REFERENCES `restaurant`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
59
Таблица адресов
Таблица адресов может быть использована, чтобы избежать избыточных
столбцов в таблице бронирования и заказа в зависимости от фактической
реализации. Ее можно напрямую сопоставить с таблицей бронирования и таблицей
заказов, используя соответствующие внешние ключи.
Do'stlaringiz bilan baham: |