Files
hfb_sys/docs/database.md
T

1.3 KiB

数据库设计

设计原则

  • MySQL 8.4 是生产事实源,Redis 只保存限流、验证码、会话辅助和缓存数据。
  • 金额统一以 *_cent 的整数分存储;数量和比例字段按业务精度单独定义。
  • 核心写入通过 GORM 事务完成,钱包账户更新使用行锁并同步写入不可变流水。
  • 表结构由 backend/migrations 下的 Goose 迁移管理,应用启动不自动修改生产表结构。

核心领域

  • 用户与权限:users、admin_users、角色、权限及关联表。
  • 商品:租赁商品、账号、资产截图、审核记录和状态事件。
  • 订单:租赁订单、交接记录、结账协商、过程事件和申诉。
  • 资金:支付单、退款单、钱包账户、钱包流水、收款账号和提现申请。
  • 运营:系统配置、公告、通知、聊天、二维码池、推送规则和撞车商品。

一致性约束

  • 下单时在事务内锁定可租商品,避免重复出租。
  • 支付状态、订单状态和商品状态在同一业务事务内推进。
  • 钱包每次余额变化必须生成对应流水,提现在待审核阶段将可用余额转为冻结余额。
  • 支付通知和业务单号使用唯一索引实现幂等。

索引、慢查询、连接池和备份恢复细则见数据库 SQL 约束与运维。