Files
medical-mall/docs/sql_summary.md

2.8 KiB
Raw Blame History

商城数据库设计文档总览

本文档是商城数据库的入口索引,提供各模块详细文档的链接与摘要。

核心文档

  1. 数据库概览

  2. 数据字典

  3. 核心功能

  4. 业务流程

  5. 部署维护

快速开始

新环境初始化

# 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_usersml_user_profiles (1:1)
  • 商品: ml_products (SPU) ↔ ml_product_skus (1:N)
  • 订单: ml_ordersml_order_items (1:N)
  • 店铺: ak_users (merchant) ↔ ml_shops (1:1)

设计原则

  1. Supabase优先

    • 使用 auth.uid() + RLS 进行数据隔离
    • 前端可直接安全地访问数据库
  2. 性能优化

    • 高频查询字段都有索引
    • 使用触发器维护汇总字段
    • 合理使用JSONB存储非结构化数据
  3. 可扩展性

    • 所有核心表都有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'模拟不同用户访问。

贡献指南

  1. 修改数据库前请先更新相关文档
  2. 保持命名一致性
  3. 提供回滚脚本
  4. 更新版本号

版本历史

  • v1.0.0 (2024-02-01): 初始版本
  • v1.1.0 (2024-02-15): 新增订阅模块

联系

如有问题请联系数据库管理员或提交issue。