Files
lijiaoqiao/supply-api/sql/postgresql/data_dictionary_v1.md
Your Name aecba5ff27 docs(review): add remediation plans and readiness artifacts
Add design, review, and production-readiness documents for the April remediation cycle.\nInclude supporting SQL and supply-api operational design notes so review conclusions and implementation guidance stay versioned together.
2026-04-13 18:54:45 +08:00

14 KiB
Raw Permalink Blame History

Supply API 数据字典 v1.0

文档版本: v1.0 创建日期: 2026-04-07 基于: supply_schema_v1.sql


1. supply_accounts (供应商账户表)

字段名 类型 约束 默认值 说明
id BIGINT PRIMARY KEY 自增 账户唯一标识
user_id BIGINT NOT NULL - 所属用户ID
platform VARCHAR(50) NOT NULL - 平台标识 (openai/anthropic/azure等)
account_type VARCHAR(20) NOT NULL - 账户类型: api_key/oauth
account_name VARCHAR(100) - - 账户显示名称
encrypted_credentials TEXT NOT NULL - 加密存储的凭证 (AES-256-GCM)
key_id VARCHAR(100) - - 凭证密钥标识
status VARCHAR(20) NOT NULL 'pending' 状态: pending/active/suspended/disabled
risk_level VARCHAR(20) NOT NULL 'normal' 风险等级: low/normal/high
total_quota NUMERIC(20,6) - - 账户总配额
available_quota NUMERIC(20,6) - - 可用配额
frozen_quota NUMERIC(20,6) NOT NULL 0 冻结配额
is_verified BOOLEAN - FALSE 是否已验证
verified_at TIMESTAMPTZ - - 验证时间
last_check_at TIMESTAMPTZ - - 最后检查时间
tos_compliant BOOLEAN - TRUE TOS合规状态
tos_check_result TEXT - - TOS检查结果
total_requests BIGINT - 0 累计请求数
total_tokens BIGINT - 0 累计使用Token数
total_cost NUMERIC(20,6) - 0 累计消费金额
success_rate NUMERIC(5,2) - 0 请求成功率(%)
risk_score INT - 0 风险评分 (0-100)
risk_reason TEXT - - 风险原因
is_frozen BOOLEAN - FALSE 是否被冻结
frozen_reason TEXT - - 冻结原因
created_at TIMESTAMPTZ - CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMPTZ - CURRENT_TIMESTAMP 更新时间
created_by BIGINT - - 创建人
updated_by BIGINT - - 更新人

索引:

  • idx_supply_accounts_user_id (user_id)
  • idx_supply_accounts_platform (platform)
  • idx_supply_accounts_status (status)
  • idx_supply_accounts_risk_level (risk_level)

2. supply_packages (供应套餐表)

字段名 类型 约束 默认值 说明
id BIGINT PRIMARY KEY 自增 套餐唯一标识
supply_account_id BIGINT NOT NULL, FK - 关联供应商账户
user_id BIGINT NOT NULL - 创建人用户ID
platform VARCHAR(50) NOT NULL - 平台标识
model VARCHAR(100) NOT NULL - 模型标识
total_quota NUMERIC(20,6) NOT NULL - 套餐总配额
available_quota NUMERIC(20,6) NOT NULL - 可用配额
sold_quota NUMERIC(20,6) - 0 已售配额
reserved_quota NUMERIC(20,6) - 0 预留配额
price_per_1m_input NUMERIC(20,6) - - 每百万输入Token价格
price_per_1m_output NUMERIC(20,6) - - 每百万输出Token价格
min_purchase NUMERIC(20,6) - - 最小购买量
start_at TIMESTAMPTZ - - 生效时间
end_at TIMESTAMPTZ - - 失效时间
valid_days INT - - 有效天数
status VARCHAR(20) NOT NULL 'draft' 状态: draft/active/paused/sold_out/expired
max_concurrent INT - 10 最大并发数
rate_limit_rpm INT - 60 每分钟限流
total_orders INT - 0 累计订单数
total_revenue NUMERIC(20,6) - 0 累计收入
rating NUMERIC(3,2) - 0 平均评分
rating_count INT - 0 评分次数
created_at TIMESTAMPTZ - CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMPTZ - CURRENT_TIMESTAMP 更新时间

索引:

  • idx_supply_packages_supply_account_id (supply_account_id)
  • idx_supply_packages_user_id (user_id)
  • idx_supply_packages_platform_model (platform, model)
  • idx_supply_packages_status (status)

3. supply_orders (供应订单表)

字段名 类型 约束 默认值 说明
id BIGINT PRIMARY KEY 自增 订单唯一标识
order_no VARCHAR(64) NOT NULL, UNIQUE - 订单编号
buyer_user_id BIGINT NOT NULL - 买家用户ID
buyer_team_id BIGINT - - 买家团队ID
supply_account_id BIGINT NOT NULL, FK - 供应商账户ID
supplier_user_id BIGINT NOT NULL - 供应商用户ID
supply_package_id BIGINT NOT NULL, FK - 套餐ID
platform VARCHAR(50) NOT NULL - 平台标识
model VARCHAR(100) NOT NULL - 模型标识
quota_amount NUMERIC(20,6) NOT NULL - 购买配额量
quota_tokens BIGINT - - 购买Token配额
unit_price NUMERIC(20,6) NOT NULL - 单价
total_amount NUMERIC(20,6) NOT NULL - 总金额
platform_fee NUMERIC(20,6) NOT NULL - 平台手续费
supplier_earnings NUMERIC(20,6) NOT NULL - 供应商实收
status VARCHAR(20) NOT NULL 'pending' 状态: pending/paid/using/expired/refunded
used_quota NUMERIC(20,6) - 0 已使用配额
remaining_quota NUMERIC(20,6) - - 剩余配额
expired_at TIMESTAMPTZ - - 过期时间
payment_method VARCHAR(20) - - 支付方式
paid_at TIMESTAMPTZ - - 支付时间
payment_transaction_id VARCHAR(100) - - 支付流水号
created_at TIMESTAMPTZ - CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMPTZ - CURRENT_TIMESTAMP 更新时间

索引:

  • idx_supply_orders_buyer_user_id (buyer_user_id)
  • idx_supply_orders_supplier_user_id (supplier_user_id)
  • idx_supply_orders_supply_package_id (supply_package_id)
  • idx_supply_orders_status (status)

4. supply_usage_records (使用记录表)

字段名 类型 约束 默认值 说明
id BIGINT PRIMARY KEY 自增 记录唯一标识
order_id BIGINT NOT NULL, FK - 关联订单ID
buyer_user_id BIGINT NOT NULL - 买家用户ID
supply_account_id BIGINT NOT NULL, FK - 供应商账户ID
supplier_user_id BIGINT NOT NULL - 供应商用户ID
request_id VARCHAR(64) NOT NULL - 请求唯一ID
upstream_request_id VARCHAR(128) - - 上游请求ID
api_key_id BIGINT - - API Key ID
platform VARCHAR(50) NOT NULL - 平台标识
model VARCHAR(100) NOT NULL - 模型标识
endpoint VARCHAR(100) NOT NULL - API端点
request_tokens BIGINT - - 请求Token数
response_tokens BIGINT - - 响应Token数
total_tokens BIGINT STORED GENERATED - 总Token数 (计算字段)
input_cost NUMERIC(20,6) - - 输入费用
output_cost NUMERIC(20,6) - - 输出费用
total_cost NUMERIC(20,6) NOT NULL - 总费用
unit_price NUMERIC(20,6) NOT NULL - 单价
response_status INT - - 响应状态码
latency_ms INT - - 延迟(毫秒)
error_message TEXT - - 错误信息
success BOOLEAN - TRUE 是否成功
started_at TIMESTAMPTZ NOT NULL - 开始时间
completed_at TIMESTAMPTZ - - 完成时间
created_at TIMESTAMPTZ - CURRENT_TIMESTAMP 创建时间

索引:

  • idx_supply_usage_records_request_id (request_id)
  • idx_supply_usage_records_order_id (order_id)
  • idx_supply_usage_records_supply_account_id (supply_account_id)
  • idx_supply_usage_records_platform_model (platform, model)
  • idx_supply_usage_records_started_at (started_at)

5. supply_earnings (收益表)

字段名 类型 约束 默认值 说明
id BIGINT PRIMARY KEY 自增 收益记录ID
user_id BIGINT NOT NULL - 用户ID
supply_account_id BIGINT FK - 供应商账户ID
order_id BIGINT FK - 关联订单ID
usage_record_id BIGINT FK - 使用记录ID
earnings_type VARCHAR(20) NOT NULL - 类型: usage/bonus/refund
amount NUMERIC(20,6) NOT NULL - 收益金额
currency VARCHAR(10) - 'CNY' 币种
status VARCHAR(20) NOT NULL 'pending' 状态: pending/available/withdrawn/frozen
available_amount NUMERIC(20,6) - 0 可用金额
frozen_amount NUMERIC(20,6) - 0 冻结金额
withdrawn_amount NUMERIC(20,6) - 0 已提现金额
description TEXT - - 描述
earned_at TIMESTAMPTZ - CURRENT_TIMESTAMP 收益时间
available_at TIMESTAMPTZ - - 可用时间
created_at TIMESTAMPTZ - CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMPTZ - CURRENT_TIMESTAMP 更新时间

索引:

  • idx_supply_earnings_user_id (user_id)
  • idx_supply_earnings_status (status)
  • idx_supply_earnings_earned_at (earned_at)

6. supply_settlements (结算表)

字段名 类型 约束 默认值 说明
id BIGINT PRIMARY KEY 自增 结算单ID
settlement_no VARCHAR(64) NOT NULL, UNIQUE - 结算单号
user_id BIGINT NOT NULL - 用户ID (供应商)
total_amount NUMERIC(20,6) NOT NULL - 总金额
fee_amount NUMERIC(20,6) - 0 手续费
net_amount NUMERIC(20,6) NOT NULL - 净金额
status VARCHAR(20) NOT NULL 'pending' 状态: pending/processing/completed/failed
payment_method VARCHAR(20) - - 支付方式
payment_account VARCHAR(100) - - 支付账户
payment_transaction_id VARCHAR(100) - - 支付流水号
paid_at TIMESTAMPTZ - - 支付时间
period_start DATE NOT NULL - 结算周期开始
period_end DATE NOT NULL - 结算周期结束
total_orders INT - 0 关联订单数
total_usage_records INT - 0 关联使用记录数
version INT - 0 乐观锁版本号
created_at TIMESTAMPTZ - CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMPTZ - CURRENT_TIMESTAMP 更新时间

索引:

  • idx_supply_settlements_user_id (user_id)
  • idx_supply_settlements_status (status)
  • idx_supply_settlements_period (period_start, period_end)

7. supply_idempotency_records (幂等记录表)

字段名 类型 约束 默认值 说明
id BIGINT PRIMARY KEY 自增 记录ID
tenant_id BIGINT NOT NULL - 租户ID
operator_id BIGINT NOT NULL - 操作人ID
api_path VARCHAR(200) NOT NULL - API路径
idempotency_key VARCHAR(128) NOT NULL - 幂等键
request_id VARCHAR(64) NOT NULL - 请求ID
payload_hash CHAR(64) NOT NULL - 请求体SHA256摘要
response_code INT - - 响应码
response_body JSONB - - 响应体
status VARCHAR(20) NOT NULL 'processing' 状态: processing/succeeded/failed
expires_at TIMESTAMPTZ NOT NULL - 过期时间 (默认24h,提现72h)
created_at TIMESTAMPTZ - CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMPTZ - CURRENT_TIMESTAMP 更新时间

索引:

  • UNIQUE (tenant_id, operator_id, api_path, idempotency_key)
  • idx_idempotency_tenant_operator_path_key (tenant_id, operator_id, api_path, idempotency_key) WHERE expires_at > CURRENT_TIMESTAMP
  • idx_idempotency_request_id (request_id)
  • idx_idempotency_expires_at (expires_at) WHERE status != 'processing'
  • idx_idempotency_status_expires (status, expires_at)

8. 枚举类型定义

account_type (账户类型)

说明
api_key API Key认证
oauth OAuth认证

account_status (账户状态)

说明
pending 待验证
active 激活
suspended 暂停
disabled 禁用

risk_level (风险等级)

说明
low 低风险
normal 正常
high 高风险

package_status (套餐状态)

说明
draft 草稿
active 生效中
paused 已暂停
sold_out 售罄
expired 已过期

order_status (订单状态)

说明
pending 待支付
paid 已支付
using 使用中
expired 已过期
refunded 已退款

settlement_status (结算状态)

说明
pending 待处理
processing 处理中
completed 已完成
failed 失败

earnings_type (收益类型)

说明
usage 使用收益
bonus 奖励
refund 退款

earnings_status (收益状态)

说明
pending 待确认
available 可提现
withdrawn 已提现
frozen 冻结中

9. 数据类型说明

类型 说明
BIGINT 64位整数主键和外部键使用
VARCHAR(n) 变长字符串最大n字符
TEXT 无长度限制的文本
NUMERIC(p,s) 精确数值p为总位数s为小数位
BOOLEAN 布尔值
TIMESTAMPTZ 带时区的时间戳
DATE 日期
JSONB JSON二进制格式支持索引
CHAR(n) 定长字符串

10. 字段命名规范

前缀/后缀 说明 示例
_id ID字段 user_id, order_id
_at 时间字段 created_at, paid_at
_amount 金额字段 total_amount, net_amount
is_ 布尔字段 is_verified, is_frozen
total_ 累计字段 total_requests, total_cost
available_ 可用字段 available_quota, available_amount
encrypted_ 加密字段 encrypted_credentials

维护记录:

  • v1.0 (2026-04-07): 初始版本基于supply_schema_v1.sql