Files
medical-mall/docs/sql/10_quality_checks.md

92 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 10 质量自检与验收(表/字段/索引/扩展/函数)
本节汇总仓库中已有的“数据库状态检查/验证脚本”,并给出在交付与升级时推荐的自检流程。
---
## 1. 现有自检脚本清单
`mall_sql/tests/` 目录下可见:
- `mall_database_check.sql`
- 检查 `ak_users` 是否缺少商城字段
- 检查商城核心表是否存在
- 检查关键索引是否存在
- 检查必要扩展是否安装
- 检查关键函数是否存在
- 输出“推荐执行方案”fields_only / alter_upgrade / migration / seo_security 等)
- 可生成具体 `ALTER TABLE` 建议
- `validation_test.sql`(存在即表示有更细校验,建议结合实际内容补充到本文档)
- `mock_data_insert.sql` / `verify_mock_data_fix.sql`
- 用于联调/验证查询与页面
- `create_supabase_auth_users.sql`
- 可能用于创建 Supabase auth 用户或测试映射
---
## 2. 推荐自检流程(交付/升级)
### 2.1 升级前(评估现状)
1. 执行 `mall_database_check.sql`
2. 根据输出信息确认:
- `ak_users` 缺哪些字段
- `ml_` 核心表缺哪些
- 关键索引是否齐全
- 扩展是否安装
- 函数是否缺失
### 2.2 执行升级/迁移
根据 `mall_database_check.sql` 给出的推荐:
- 缺字段多 + 缺表:`mall_alter_upgrade.sql`
- 只缺字段:`mall_fields_only_upgrade.sql`
- 只缺表:`mall_migration.sql`
- SEO/RLS 缺失:`mall_seo_security.sql`
### 2.3 升级后(验证验收)
1. 再次执行 `mall_database_check.sql`,确认缺失项归零
2.(测试环境)插入 mock 数据(若有脚本)
3. 跑核心链路的“最小验收用例”(见下)
---
## 3. 最小验收用例(建议团队固化)
### 3.1 用户侧
- 能创建/更新 `ml_user_profiles`
- 能新增地址并设置默认,确认默认地址唯一
- 能加购、更新购物车数量
### 3.2 商品侧
- 能创建商品 + SKU
- 更新 SKU 库存,确认 `ml_products.total_stock/available_stock` 自动刷新
- 商品上架后普通用户侧可查询到RLS/策略允许)
### 3.3 订单侧
- 能创建订单 + 明细
- 更新订单状态1->2->3->4确认时间戳与销量累计逻辑若使用 complete 脚本触发器)
### 3.4 营销/优惠券
- 创建券模板
- 领券生成券码
- 核销券并绑定订单
---
## 4. 注意事项
- 生产执行前务必在测试环境验证脚本兼容性与执行顺序。
- 若启用 RLS检查脚本/运维脚本需要使用 service role 或具有相应权限的连接方式,否则可能误判数据可见性。
- 如新增状态枚举值,需同步更新:
- `CHECK` 约束
- 相关触发器/函数
- 文档字典(`03_enums_status_dict.md`