mall数据库文件
This commit is contained in:
354
mall_sql/README.md
Normal file
354
mall_sql/README.md
Normal file
@@ -0,0 +1,354 @@
|
||||
# Mall SQL 数据库脚本集合
|
||||
|
||||
> **电商商城系统** - PostgreSQL + Supabase 数据库脚本总目录
|
||||
|
||||
---
|
||||
|
||||
## 📁 目录结构
|
||||
|
||||
```
|
||||
mall_sql/
|
||||
├── schemas/ # 数据库表结构定义
|
||||
├── migrations/ # 数据库迁移/升级脚本
|
||||
├── tests/ # 测试和验证脚本
|
||||
├── subscription/ # 订阅系统专用脚本
|
||||
├── scripts/ # 迁移脚本 (migrate.sh/ps1)
|
||||
├── docs/ # 数据库文档
|
||||
├── deploy.sh # Linux/Mac 自动部署脚本
|
||||
├── deploy.bat # Windows 自动部署脚本
|
||||
└── README.md # 本文件
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 首次部署(全新数据库)
|
||||
|
||||
```bash
|
||||
# 1. 执行完整数据库创建
|
||||
psql -h db.example.com -U postgres -d akmon -f schemas/complete_mall_database.sql
|
||||
|
||||
# 2. 创建测试用户和模拟数据
|
||||
psql -h db.example.com -U postgres -d akmon -f tests/mock_data_insert.sql
|
||||
```
|
||||
|
||||
### 增量升级(已有数据库)
|
||||
|
||||
```bash
|
||||
# 1. 先检查数据库状态
|
||||
psql -h db.example.com -U postgres -d akmon -f tests/mall_database_check.sql
|
||||
|
||||
# 2. 执行增量升级
|
||||
psql -h db.example.com -U postgres -d akmon -f migrations/mall_alter_upgrade.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 schemas/ - 数据库表结构
|
||||
|
||||
| 文件 | 说明 | 执行顺序 |
|
||||
|------|------|----------|
|
||||
| `complete_mall_database.sql` | 完整商城数据库(21个表)**推荐** | 1 |
|
||||
| `ak_contents_product_extension.sql` | **备选方案**: 基于ak_contents扩展商品 | - |
|
||||
| `product_database.sql` | 商品相关表补充 | 2 |
|
||||
| `mall_seo_security.sql` | SEO优化和安全策略 | 3 |
|
||||
|
||||
### 两种实现方案
|
||||
|
||||
**方案一: 独立商城表(推荐)**
|
||||
- 使用 `ml_products` 等独立表
|
||||
- 执行: `complete_mall_database.sql`
|
||||
- 优点: 职责清晰,不影响资讯系统
|
||||
|
||||
**方案二: 扩展ak_contents表(备选)**
|
||||
- 复用 `ak_contents` 表,添加商品字段
|
||||
- 执行: `ak_contents_product_extension.sql`
|
||||
- 优点: 统一内容管理,但混合了资讯和商品
|
||||
|
||||
### complete_mall_database.sql
|
||||
|
||||
完整的商城系统数据库定义,包含:
|
||||
|
||||
**用户模块**:
|
||||
- `ml_user_profiles` - 用户扩展信息
|
||||
- `ml_user_addresses` - 用户地址
|
||||
|
||||
**商品模块**:
|
||||
- `ml_categories` - 商品分类
|
||||
- `ml_brands` - 品牌
|
||||
- `ml_products` - 商品主表
|
||||
- `ml_product_skus` - SKU规格
|
||||
- `ml_product_images` - 商品图片
|
||||
|
||||
**订单模块**:
|
||||
- `ml_orders` - 订单主表
|
||||
- `ml_order_items` - 订单明细
|
||||
- `ml_order_status_log` - 订单状态日志
|
||||
|
||||
**配送模块**:
|
||||
- `ml_delivery_tasks` - 配送任务
|
||||
- `ml_delivery_tracking` - 配送跟踪
|
||||
|
||||
**支付模块**:
|
||||
- `ml_payments` - 支付记录
|
||||
|
||||
**营销模块**:
|
||||
- `ml_coupons` - 优惠券
|
||||
- `ml_user_coupons` - 用户优惠券
|
||||
|
||||
**订阅模块**:
|
||||
- `ml_subscriptions` - 订阅计划
|
||||
- `ml_user_subscriptions` - 用户订阅
|
||||
|
||||
---
|
||||
|
||||
## 🔄 migrations/ - 数据库迁移
|
||||
|
||||
| 文件 | 说明 | 使用场景 |
|
||||
|------|------|----------|
|
||||
| `mall_alter_upgrade.sql` | 完整增量升级 | 生产环境升级 |
|
||||
| `mall_fields_only_upgrade.sql` | 仅字段升级 | 最小化修改 |
|
||||
| `quick_role_migration.sql` | 角色字段快速迁移 | user_type→role |
|
||||
| `mall_migration.sql` | 通用迁移脚本 | 兼容性处理 |
|
||||
| `role_field_unification.sql` | 角色字段统一 | 数据一致性 |
|
||||
| `role_field_cleanup.sql` | 角色字段清理 | 清理冗余字段 |
|
||||
| `user_compatibility_implementation.sql` | 用户兼容性实现 | 跨模块兼容 |
|
||||
|
||||
### 重要迁移说明
|
||||
|
||||
**角色字段统一**:
|
||||
- 旧字段: `user_type` (INTEGER)
|
||||
- 新字段: `role` (TEXT)
|
||||
- 迁移脚本: `quick_role_migration.sql`
|
||||
|
||||
**角色值映射**:
|
||||
| user_type | role |
|
||||
|-----------|------|
|
||||
| 1 | 'admin' |
|
||||
| 2 | 'merchant' |
|
||||
| 3 | 'customer' |
|
||||
| 4 | 'delivery' |
|
||||
| 5 | 'service' |
|
||||
|
||||
---
|
||||
|
||||
## 🧪 tests/ - 测试和验证
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `mall_database_check.sql` | 数据库状态检查 |
|
||||
| `validation_test.sql` | 数据完整性验证 |
|
||||
| `verify_mock_data_fix.sql` | 模拟数据修复验证 |
|
||||
| `mock_data_insert.sql` | 创建测试数据 |
|
||||
| `create_supabase_auth_users.sql` | 创建Supabase Auth用户 |
|
||||
|
||||
### 测试数据说明
|
||||
|
||||
`mock_data_insert.sql` 创建以下测试数据:
|
||||
- 1个管理员
|
||||
- 2个商家
|
||||
- 10个商品
|
||||
- 3个客户
|
||||
- 20个订单
|
||||
- 2个配送员
|
||||
- 5个配送任务
|
||||
|
||||
---
|
||||
|
||||
## 📬 subscription/ - 订阅系统
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `create_mall_subscription_tables.sql` | 订阅表创建 |
|
||||
| `subscription_guard_trigger.sql` | 订阅守护触发器 |
|
||||
| `subscription_rls_policies.sql` | 订阅RLS安全策略 |
|
||||
|
||||
### 订阅系统表
|
||||
|
||||
- `ml_subscriptions` - 订阅计划定义
|
||||
- `ml_user_subscriptions` - 用户订阅记录
|
||||
- `ml_subscription_payments` - 订阅支付记录
|
||||
|
||||
---
|
||||
|
||||
## 📚 docs/ - 文档
|
||||
|
||||
### 核心文档
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `MALL_README.md` | 商城系统主文档 |
|
||||
| `TECHNICAL_IMPLEMENTATION.md` | 技术实现详解 |
|
||||
| `MODULE_ANALYSIS.md` | 模块分析 |
|
||||
|
||||
### 部署与升级
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `UPGRADE_GUIDE.md` | 数据库升级指南 |
|
||||
| `MIGRATION_GUIDE.md` | 迁移指南 |
|
||||
| `QUICK_START_MIGRATION.md` | 快速迁移指南 |
|
||||
| `MIGRATION_CHECKLIST.md` | 迁移检查清单 |
|
||||
| `MIGRATION_SUMMARY.md` | 迁移总结 |
|
||||
| `complete_deployment_guide.md` | 完整部署指南 |
|
||||
| `deployment_guide.md` | 部署指南 |
|
||||
| `migration_complete_report.md` | 迁移完成报告 |
|
||||
|
||||
### 角色与权限
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `ROLE_FIELD_SUMMARY.md` | 角色字段变更总结 |
|
||||
| `ROLE_FIELD_FIX_REPORT.md` | 角色字段修复报告 |
|
||||
| `user_reuse_summary.md` | 用户复用总结 |
|
||||
|
||||
### 问题修复报告
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `VARIABLE_CONFLICT_FIX_REPORT.md` | 变量冲突修复 |
|
||||
| `database_syntax_fix_report.md` | 数据库语法修复 |
|
||||
| `type_error_fix_report.md` | 类型错误修复 |
|
||||
|
||||
### 测试与数据
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `mock_data_documentation.md` | 测试数据文档 |
|
||||
| `database_creation_report.md` | 数据库创建报告 |
|
||||
| `FRONTEND_BACKEND_DEBUGGING.md` | 前后端调试指南 |
|
||||
|
||||
### SEO与优化
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `seo_optimization_guide.md` | SEO优化指南 |
|
||||
| `seo_optimization_report.md` | SEO优化报告 |
|
||||
|
||||
### 订阅系统
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `README_subscription_consumer.md` | 订阅系统说明 |
|
||||
| `裂变红包.md` | 裂变红包功能 |
|
||||
|
||||
### 页面报告
|
||||
| 目录 | 说明 |
|
||||
|------|------|
|
||||
| `docs/reports/` | 页面生成报告 |
|
||||
| `docs/analysis/` | 兼容性分析 |
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ 数据库表总览
|
||||
|
||||
```
|
||||
akmon (PostgreSQL Database)
|
||||
│
|
||||
├── public.ak_users # 用户主表(共享)
|
||||
│
|
||||
└── public.ml_* (商城系统表,21张)
|
||||
├── ml_user_profiles # 用户扩展信息
|
||||
├── ml_user_addresses # 用户地址
|
||||
├── ml_categories # 商品分类
|
||||
├── ml_brands # 品牌
|
||||
├── ml_products # 商品
|
||||
├── ml_product_skus # SKU
|
||||
├── ml_product_images # 商品图片
|
||||
├── ml_orders # 订单
|
||||
├── ml_order_items # 订单明细
|
||||
├── ml_order_status_log # 订单日志
|
||||
├── ml_delivery_tasks # 配送任务
|
||||
├── ml_delivery_tracking # 配送跟踪
|
||||
├── ml_payments # 支付
|
||||
├── ml_coupons # 优惠券
|
||||
├── ml_user_coupons # 用户优惠券
|
||||
├── ml_subscriptions # 订阅计划
|
||||
├── ml_user_subscriptions # 用户订阅
|
||||
├── ml_subscription_payments # 订阅支付
|
||||
├── ml_merchant_profiles # 商家资料
|
||||
├── ml_delivery_staff # 配送员
|
||||
└── ml_notifications # 通知
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 常用SQL操作
|
||||
|
||||
### 检查表是否存在
|
||||
```sql
|
||||
SELECT table_name, table_type
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name LIKE 'ml_%'
|
||||
ORDER BY table_name;
|
||||
```
|
||||
|
||||
### 查看表结构
|
||||
```sql
|
||||
\d+ public.ml_products
|
||||
-- 或
|
||||
SELECT column_name, data_type, is_nullable, column_default
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name = 'ml_products'
|
||||
ORDER BY ordinal_position;
|
||||
```
|
||||
|
||||
### 检查索引
|
||||
```sql
|
||||
SELECT indexname, indexdef
|
||||
FROM pg_indexes
|
||||
WHERE schemaname = 'public'
|
||||
AND tablename LIKE 'ml_%'
|
||||
ORDER BY tablename, indexname;
|
||||
```
|
||||
|
||||
### 检查RLS策略
|
||||
```sql
|
||||
SELECT schemaname, tablename, policyname, permissive, roles, cmd, qual
|
||||
FROM pg_policies
|
||||
WHERE schemaname = 'public'
|
||||
AND tablename LIKE 'ml_%'
|
||||
ORDER BY tablename, policyname;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
### 执行顺序
|
||||
|
||||
1. **全新部署**: 按以下顺序执行
|
||||
- `schemas/complete_mall_database.sql`
|
||||
- `schemas/product_database.sql`
|
||||
- `schemas/mall_seo_security.sql`
|
||||
- `subscription/create_mall_subscription_tables.sql`
|
||||
- `tests/mock_data_insert.sql`
|
||||
|
||||
2. **增量升级**: 先检查后升级
|
||||
- `tests/mall_database_check.sql`
|
||||
- 根据检查结果选择合适的迁移脚本
|
||||
- `tests/validation_test.sql`
|
||||
|
||||
### Supabase Auth 用户
|
||||
|
||||
在执行任何脚本之前,**必须先创建 Supabase Auth 用户**:
|
||||
```bash
|
||||
psql -f tests/create_supabase_auth_users.sql
|
||||
```
|
||||
|
||||
### 角色字段兼容性
|
||||
|
||||
如果你的数据库使用旧的 `user_type` 字段,请先执行角色迁移:
|
||||
```bash
|
||||
psql -f migrations/quick_role_migration.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 支持
|
||||
|
||||
如有问题,请查阅:
|
||||
1. `docs/complete_deployment_guide.md` - 完整部署指南
|
||||
2. `docs/UPGRADE_GUIDE.md` - 升级指南
|
||||
3. `docs/ROLE_FIELD_SUMMARY.md` - 角色字段说明
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2026-01-30
|
||||
**维护者**: AKMON开发团队
|
||||
Reference in New Issue
Block a user