1a893d8d96
新增 admin 模块接口文档(auth login/me、admins CRUD、audit-logs、feedback 处理、stats 概览、user coins/detail/status、wallet 流水、withdraw 对账/刷新/列表) + admin_user/admin_audit_log 两张表文档,更新 api/database README 索引。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
傻瓜比价 App 后端 — 数据库表文档(索引)
数据库:SQLite 起步(
data/app.db),生产可切 PostgreSQL(改DATABASE_URL)。 ORM:SQLAlchemy 2.0(app/models/),迁移:Alembic(alembic/versions/,render_as_batch兼容 SQLite)。 金额字段一律存整数:金币=个数,现金=分(*_cents)。时间列DateTime(timezone=True)。 最后更新:2026-06-04(+ admin_user / admin_audit_log)
表总览
| 表 | 用途 | 模型 | 关联模块 | 文档 |
|---|---|---|---|---|
user |
用户(登录主体) | models/user.py |
登录/鉴权 | 详情 |
coin_account |
金币+现金余额快照(一用户一行) | models/wallet.py |
钱包 | 详情 |
coin_transaction |
金币流水账本 | models/wallet.py |
钱包 | 详情 |
cash_transaction |
现金流水账本(分) | models/wallet.py |
钱包/提现 | 详情 |
withdraw_order |
提现单(现金→微信零钱) | models/wallet.py |
提现 | 详情 |
signin_record |
签到记录(7 天循环) | models/signin.py |
签到 | 详情 |
user_task |
一次性任务领取去重 | models/task.py |
任务 | 详情 |
savings_record |
省钱记录(profile 省钱战绩源) | models/savings.py |
省钱 | 详情 |
ad_reward_record |
看激励视频发奖记录(S2S 回调) | models/ad_reward.py |
看广告发奖 | 详情 |
ad_ecpm_record |
广告展示 eCPM 上报(收益对账) | models/ad_ecpm.py |
看广告 | 详情 |
feedback |
用户帮助与反馈 | models/feedback.py |
反馈 | 详情 |
comparison_record |
比价记录(每次比价完整明细) | models/comparison.py |
比价记录 | 详情 |
comparison_milestone_claim |
比价战绩里程碑领取记录 | models/comparison_milestone.py |
比价记录/福利 | 详情 |
admin_user |
运营后台管理员账号(独立鉴权) | models/admin.py |
Admin 后台 | 详情 |
admin_audit_log |
运营后台操作审计日志(只追加) | models/admin.py |
Admin 后台 | 详情 |
通用约定
- 主键:
idInteger autoincrement(coin_account例外:user_id既是主键也是外键,一用户一行)。 - 外键:所有用户维度表
user_id→user.id,且建 index。 - 金额:整数;金币计数,现金/价格存「分」(
*_cents)。 - 时间:
created_at等用DateTime(timezone=True)+server_default=func.now();业务"今天"按北京时间(见core/rewards.cn_today),跨天计数用「日期串」列(如reward_date/report_date)等值查,不在 SQL 里做跨时区 date 比较(SQLite 不可靠)。 - JSON 列:用
JSON().with_variant(JSONB(), "postgresql")—— PG 上 JSONB(可建 GIN 索引),SQLite 退化为通用 JSON(否则create_all编译报错)。 - 迁移:改表必写 alembic 迁移并保持单 head;改表/建表同时更新本目录对应文档(一表一文件)。