接入数据库

This commit is contained in:
comlibmb
2026-01-26 21:34:17 +08:00
parent c14f67cfc8
commit 3fbd9a2b3d
26 changed files with 3559 additions and 427 deletions

View File

@@ -0,0 +1,115 @@
# SQL 文件整理完成
## ✅ 已完成的整理
### 1. 移除重复的简化表定义
- ✅ 从 `ANALYTICS_DB_SCHEMA.sql` 中移除了简化的 `user_sessions``page_views` 定义
- ✅ 添加了注释说明依赖关系
### 2. 添加依赖说明
- ✅ 在 `01_create_tables.sql` 中添加了注释,说明可能与 `USER_AUTH_SCHEMA.sql` 重复
- ✅ 在 `USER_AUTH_SCHEMA.sql` 中添加了注释,说明可能与 `01_create_tables.sql` 重复
---
## 📋 当前文件结构
### `pages/user/test/` - 用户认证相关
1. **`USER_AUTH_SCHEMA.sql`** ⭐
- `ak_users` 表(业务用户资料)
- `users` 表(统计用,可能与 analytics 重复)
- `user_sessions` 表(会话统计,可能与 analytics 重复)
- `upsert_user_profile` RPC 函数
- `handle_new_user` 触发器函数(注释中)
2. **`USER_AUTH_TRIGGER.sql`** ⭐
- `on_auth_user_created` 触发器(在 auth.users 插入时自动创建 ak_users
3. **`USER_AUTH_TEST_DATA.sql`**(可选)
- 测试数据
### `pages/mall/analytics/test/` - 数据分析相关
1. **`01_create_tables.sql`** ⭐
- 业务核心表:`orders`, `order_items`, `products`, `merchants`
- 统计表:`users`, `user_sessions`, `page_views`(可能与 USER_AUTH_SCHEMA.sql 重复)
- RLS 策略
- `update_updated_at_column` 函数和触发器
2. **`ANALYTICS_DB_SCHEMA.sql`** ⭐
- 分析表:`analytics_*` 系列表
- RPC 函数(用于数据分析)
- **已移除**:简化的 `user_sessions``page_views` 定义
3. **`02_insert_test_data.sql`**(可选)
- 业务表测试数据
4. **`ANALYTICS_TEST_SEED.sql`**(可选)
- 分析表测试数据
5. **`03_test_queries.sql`**(可选)
- 测试查询
6. **`04_cleanup.sql`**(可选)
- 清理脚本
---
## 🚀 推荐执行顺序
### 首次部署
```sql
-- 1. 用户认证表(包含 users, user_sessions
pages/user/test/USER_AUTH_SCHEMA.sql
pages/user/test/USER_AUTH_TRIGGER.sql
-- 2. 业务表(会跳过已存在的 users, user_sessions
pages/mall/analytics/test/01_create_tables.sql
-- 3. 分析表(依赖业务表)
pages/mall/analytics/test/ANALYTICS_DB_SCHEMA.sql
-- 4. 测试数据(可选)
pages/mall/analytics/test/02_insert_test_data.sql
pages/mall/analytics/test/ANALYTICS_TEST_SEED.sql
```
### 后续更新
- 如果只更新分析表,只需执行 `ANALYTICS_DB_SCHEMA.sql`
- 如果只更新业务表,只需执行 `01_create_tables.sql`
- 如果只更新用户认证,只需执行 `USER_AUTH_SCHEMA.sql`
---
## 🔍 重复内容说明
### 已处理的重复
1.**`user_sessions` 表** - 保留在 `USER_AUTH_SCHEMA.sql``01_create_tables.sql` 中的完整定义,移除 `ANALYTICS_DB_SCHEMA.sql` 中的简化定义
2.**`page_views` 表** - 保留在 `01_create_tables.sql` 中的完整定义,移除 `ANALYTICS_DB_SCHEMA.sql` 中的简化定义
### 保留的重复(安全)
1. **`users` 表** - 在 `USER_AUTH_SCHEMA.sql``01_create_tables.sql` 中都有定义,使用 `IF NOT EXISTS` 不会冲突
2. **`update_updated_at_column` 函数** - 在多个文件中定义,使用 `CREATE OR REPLACE FUNCTION` 不会冲突
3. **触发器** - 使用 `IF NOT EXISTS``DROP TRIGGER IF EXISTS` 确保不会冲突
---
## ✅ 验证
执行以下查询验证表结构:
```sql
-- 检查 user_sessions 表字段(应该是完整定义)
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = 'user_sessions' AND table_schema = 'public'
ORDER BY ordinal_position;
-- 检查 page_views 表字段(应该是完整定义)
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = 'page_views' AND table_schema = 'public'
ORDER BY ordinal_position;
```
**预期结果**
- `user_sessions` 应包含id, user_id, session_token, last_active_at, is_active, ip_address, user_agent, created_at, updated_at
- `page_views` 应包含id, user_id, path, source, referrer, ip_address, user_agent, created_at