- 更新 DashboardLayout 组件,统一使用演示模式布局 - 实现仪表盘页面的完整演示数据和功能 - 完成用户管理页面的演示模式,包含搜索、过滤、分页等功能 - 实现通话记录页面的演示数据和录音播放功能 - 完成翻译员管理页面的演示模式 - 实现订单管理页面的完整功能 - 完成发票管理页面的演示数据 - 更新文档管理页面 - 添加 utils.ts 工具函数库 - 完善 API 路由和数据库结构 - 修复各种 TypeScript 类型错误 - 统一界面风格和用户体验
179 lines
3.6 KiB
Markdown
179 lines
3.6 KiB
Markdown
# 数据库设置说明
|
|
|
|
## 概述
|
|
|
|
本项目使用 Supabase 作为后端数据库服务,提供 PostgreSQL 数据库、身份验证、实时订阅等功能。
|
|
|
|
## 数据库配置步骤
|
|
|
|
### 1. 创建 Supabase 项目
|
|
|
|
1. 访问 [Supabase Dashboard](https://supabase.com/dashboard)
|
|
2. 创建新项目
|
|
3. 记录项目的 URL 和 API 密钥
|
|
|
|
### 2. 执行数据库脚本
|
|
|
|
1. 在 Supabase Dashboard 中,进入 SQL Editor
|
|
2. 将 `schema.sql` 文件的内容复制粘贴到编辑器中
|
|
3. 点击 "Run" 执行脚本
|
|
|
|
### 3. 配置环境变量
|
|
|
|
在项目根目录的 `.env.local` 文件中配置以下变量:
|
|
|
|
```env
|
|
# Supabase 配置
|
|
NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co
|
|
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
|
|
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
|
|
```
|
|
|
|
## 数据库表结构
|
|
|
|
### 核心表
|
|
|
|
1. **users** - 用户表
|
|
- 存储用户基本信息
|
|
- 支持个人用户、企业用户、管理员三种类型
|
|
|
|
2. **enterprises** - 企业表
|
|
- 存储企业客户信息
|
|
- 与用户表关联
|
|
|
|
3. **orders** - 订单表
|
|
- 存储口译服务订单
|
|
- 关联用户和译员
|
|
|
|
4. **invoices** - 发票表
|
|
- 存储发票信息
|
|
- 支持个人和企业发票
|
|
|
|
5. **interpreters** - 译员表
|
|
- 存储译员信息和能力
|
|
- 支持多语言和专业领域
|
|
|
|
6. **calls** - 通话记录表
|
|
- 存储实际通话记录
|
|
- 用于统计和质量评估
|
|
|
|
7. **documents** - 文档翻译表
|
|
- 存储文档翻译任务
|
|
- 跟踪翻译进度
|
|
|
|
### 辅助表
|
|
|
|
1. **enterprise_contracts** - 企业合同表
|
|
2. **enterprise_bills** - 企业账单表
|
|
3. **system_settings** - 系统设置表
|
|
|
|
## 安全策略
|
|
|
|
### 行级安全 (RLS)
|
|
|
|
所有表都启用了行级安全策略:
|
|
|
|
- **管理员权限**:管理员可以访问所有数据
|
|
- **用户权限**:普通用户只能访问自己的数据
|
|
- **企业权限**:企业用户可以访问所属企业的数据
|
|
|
|
### 身份验证
|
|
|
|
使用 Supabase Auth 进行用户身份验证:
|
|
|
|
- 支持邮箱密码注册/登录
|
|
- 支持社交登录(可选)
|
|
- JWT 令牌验证
|
|
- 会话管理
|
|
|
|
## 数据库索引
|
|
|
|
为提高查询性能,已创建以下索引:
|
|
|
|
- 用户邮箱索引
|
|
- 用户类型索引
|
|
- 订单状态索引
|
|
- 订单创建时间索引
|
|
- 其他常用查询字段索引
|
|
|
|
## 触发器
|
|
|
|
自动更新 `updated_at` 字段的触发器已为所有表配置。
|
|
|
|
## 初始数据
|
|
|
|
系统会自动插入以下初始设置:
|
|
|
|
- 应用基本配置
|
|
- 支持的语言列表
|
|
- 默认货币设置
|
|
- 税率配置
|
|
|
|
## 备份和恢复
|
|
|
|
Supabase 提供自动备份功能,建议:
|
|
|
|
1. 定期检查备份状态
|
|
2. 测试恢复流程
|
|
3. 导出重要数据作为额外备份
|
|
|
|
## 监控和维护
|
|
|
|
建议定期执行以下维护任务:
|
|
|
|
1. 检查数据库性能
|
|
2. 清理过期数据
|
|
3. 更新统计信息
|
|
4. 监控存储使用情况
|
|
|
|
## 故障排除
|
|
|
|
### 常见问题
|
|
|
|
1. **连接失败**
|
|
- 检查环境变量配置
|
|
- 确认 Supabase 项目状态
|
|
|
|
2. **权限错误**
|
|
- 检查 RLS 策略
|
|
- 确认用户角色设置
|
|
|
|
3. **查询性能问题**
|
|
- 检查索引使用情况
|
|
- 优化查询语句
|
|
|
|
### 调试工具
|
|
|
|
- Supabase Dashboard 中的 SQL Editor
|
|
- 实时日志监控
|
|
- 性能分析工具
|
|
|
|
## 扩展功能
|
|
|
|
### 实时订阅
|
|
|
|
项目支持实时数据订阅,可以监听:
|
|
|
|
- 新订单创建
|
|
- 订单状态变更
|
|
- 通话状态更新
|
|
|
|
### 全文搜索
|
|
|
|
可以启用 PostgreSQL 的全文搜索功能来搜索:
|
|
|
|
- 用户信息
|
|
- 订单内容
|
|
- 文档内容
|
|
|
|
### 地理位置
|
|
|
|
如需要地理位置功能,可以启用 PostGIS 扩展。
|
|
|
|
## 开发建议
|
|
|
|
1. 使用类型安全的查询构建器
|
|
2. 实施适当的错误处理
|
|
3. 使用事务处理复杂操作
|
|
4. 定期更新依赖包
|
|
5. 遵循数据库最佳实践 |