mars f20988b90c feat: 完成所有页面的演示模式实现
- 更新 DashboardLayout 组件,统一使用演示模式布局
- 实现仪表盘页面的完整演示数据和功能
- 完成用户管理页面的演示模式,包含搜索、过滤、分页等功能
- 实现通话记录页面的演示数据和录音播放功能
- 完成翻译员管理页面的演示模式
- 实现订单管理页面的完整功能
- 完成发票管理页面的演示数据
- 更新文档管理页面
- 添加 utils.ts 工具函数库
- 完善 API 路由和数据库结构
- 修复各种 TypeScript 类型错误
- 统一界面风格和用户体验
2025-06-30 19:42:43 +08:00
..

数据库设置说明

概述

本项目使用 Supabase 作为后端数据库服务,提供 PostgreSQL 数据库、身份验证、实时订阅等功能。

数据库配置步骤

1. 创建 Supabase 项目

  1. 访问 Supabase Dashboard
  2. 创建新项目
  3. 记录项目的 URL 和 API 密钥

2. 执行数据库脚本

  1. 在 Supabase Dashboard 中,进入 SQL Editor
  2. schema.sql 文件的内容复制粘贴到编辑器中
  3. 点击 "Run" 执行脚本

3. 配置环境变量

在项目根目录的 .env.local 文件中配置以下变量:

# 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. 遵循数据库最佳实践