22 lines
1.9 KiB
MySQL
22 lines
1.9 KiB
MySQL
|
CREATE TABLE `transaction` (
|
|||
|
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '交易主鍵 ID,自動遞增',
|
|||
|
`order_id` VARCHAR(64) DEFAULT NULL COMMENT '關聯的訂單 ID,可為空(若不是由訂單觸發)',
|
|||
|
`transaction_id` VARCHAR(64) NOT NULL COMMENT '此筆交易的唯一識別碼(系統內部使用,可為 UUID)',
|
|||
|
`brand` VARCHAR(50) NOT NULL COMMENT '所屬品牌(支援多品牌場景)',
|
|||
|
`uid` VARCHAR(64) NOT NULL COMMENT '交易發起者的 UID',
|
|||
|
`to_uid` VARCHAR(64) DEFAULT NULL COMMENT '交易對象的 UID(如為轉帳場景)',
|
|||
|
`type` TINYINT NOT NULL COMMENT '交易類型(如轉帳、入金、出金等,自定義列舉)',
|
|||
|
`business_type` TINYINT NOT NULL COMMENT '業務類型(如合約、模擬、一般用途等,數字代碼)',
|
|||
|
`crypto` VARCHAR(32) NOT NULL COMMENT '幣種(如 BTC、ETH、USD、TWD 等)',
|
|||
|
`amount` DECIMAL(30, 18) NOT NULL COMMENT '本次變動金額(正數為增加,負數為扣減)',
|
|||
|
`balance` DECIMAL(30, 18) NOT NULL COMMENT '交易完成後的錢包餘額',
|
|||
|
`before_balance` DECIMAL(30, 18) NOT NULL COMMENT '交易前的錢包餘額(方便審計與對帳)',
|
|||
|
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '狀態(1: 有效、0: 無效/已取消)',
|
|||
|
`create_time` BIGINT NOT NULL DEFAULT 0 COMMENT '建立時間(Unix 秒數)',
|
|||
|
`due_time` BIGINT NOT NULL DEFAULT 0 COMMENT '到期時間(適用於凍結或延後入帳等場景)',
|
|||
|
PRIMARY KEY (`id`),
|
|||
|
UNIQUE KEY `uq_transaction_id` (`transaction_id`),
|
|||
|
KEY `idx_uid` (`uid`),
|
|||
|
KEY `idx_order_id` (`order_id`),
|
|||
|
KEY `idx_create_time` (`create_time`)
|
|||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='交易紀錄表';
|