账户交易流水表 (Account Transactions)
account_transactions 表记录用户账户中所有资金变动的详细日志,是财务审计和对账的核心表。
交易类型枚举
系统定义了以下交易类型:
CREATE TYPE tx_type AS ENUM (
'deposit', -- 充值:用户从外部钱包向平台充值
'withdraw', -- 提现:用户从平台提现到外部钱包
'invest', -- 申购:用户申购理财产品(资金冻结)
'interest_return', -- 利息返还:理财产品到期派发利息
'principal_return' -- 本金返还:理财产品到期返还本金
);
表结构
完整的 account_transactions 表定义:
CREATE TABLE account_transactions (
id BIGSERIAL PRIMARY KEY,
user_id INT NOT NULL,
amount NUMERIC(20, 6) NOT NULL,
transaction_type tx_type NOT NULL,
reference_id INT, -- 关联的 investment_id 或外部交易哈希
created_at TIMESTAMPTZ DEFAULT NOW()
);
字段详解
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
id | BIGSERIAL | PRIMARY KEY | 流水记录唯一标识(自增主键) 使用 BIGSERIAL 支持海量交易记录 |
user_id | INT | NOT NULL | 用户 ID,关联用户表 |
amount | NUMERIC(20, 6) | NOT NULL | 交易金额(USDT) 正数表示资金增加,负数表示资金减少 |
transaction_type | tx_type | NOT NULL | 交易类型,见上方枚举说明 |
reference_id | INT | - | 关联业务记录 ID - 理财相关:关联 user_investments.id- 充提相关:可存储外部交易哈希或订单号 |
created_at | TIMESTAMPTZ | DEFAULT NOW() | 交易发生时间(带时区) |
交易类型说明
1. deposit(充值)
用户从外部钱包充值到平台账户:
- 金额:正数
- reference_id:可存储链上交易哈希或充值订单ID
- 示例:用户充值 1000 USDT 到平台
2. withdraw(提现)
用户从平台账户提现到外部钱包:
- 金额:负数
- reference_id:可存储链上交易哈希或提现订单ID
- 示例:用户提现 500 USDT 到个人钱包