2.8 KiB
2.8 KiB
商城数据库设计文档总览
本文档是商城数据库的入口索引,提供各模块详细文档的链接与摘要。
核心文档
-
数据库概览
-
数据字典
- 03 状态字典: 所有状态字段的枚举值与业务含义
-
核心功能
-
业务流程
-
部署维护
快速开始
新环境初始化
# 1. 执行基础迁移
psql -f doc_mall/database/mall_migration.sql
# 2. 应用安全策略
psql -f doc_mall/database/mall_seo_security.sql
# 3. 验证数据库状态
psql -f mall_sql/tests/mall_database_check.sql
核心表关系速查
- 用户:
ak_users↔ml_user_profiles(1:1) - 商品:
ml_products(SPU) ↔ml_product_skus(1:N) - 订单:
ml_orders↔ml_order_items(1:N) - 店铺:
ak_users(merchant) ↔ml_shops(1:1)
设计原则
-
Supabase优先
- 使用
auth.uid()+ RLS 进行数据隔离 - 前端可直接安全地访问数据库
- 使用
-
性能优化
- 高频查询字段都有索引
- 使用触发器维护汇总字段
- 合理使用JSONB存储非结构化数据
-
可扩展性
- 所有核心表都有
cid(自增ID)和slug用于SEO - 模块化设计,支持功能扩展
- 所有核心表都有
常见问题
Q: 如何添加新状态? A: 需要更新CHECK约束、相关触发器和状态字典文档。
Q: 如何添加新表?
A: 参考现有表结构,确保包含id(UUID)、cid(SERIAL)、created_at等标准字段。
Q: 如何测试RLS策略?
A: 使用set local request.jwt.claim.sub = 'user-id'模拟不同用户访问。
贡献指南
- 修改数据库前请先更新相关文档
- 保持命名一致性
- 提供回滚脚本
- 更新版本号
版本历史
- v1.0.0 (2024-02-01): 初始版本
- v1.1.0 (2024-02-15): 新增订阅模块
联系
如有问题,请联系数据库管理员或提交issue。