Twilioapp-project/web-app/DATABASE_SETUP.md
mars 0d57273021 添加数据库集成和用户认证功能
- 新增用户注册和登录系统 (login.html, register.html)
- 集成Supabase数据库连接 (config.js, api.js)
- 完善数据库架构设计 (database-schema.sql)
- 添加部署指南和配置文档 (DEPLOYMENT_GUIDE.md)
- 修复主页面结构和功能完善 (index.html)
- 支持通话记录保存到数据库
- 完整的账单管理和用户认证流程
- 集成OpenAI、Twilio、Stripe等API服务
2025-06-30 19:34:58 +08:00

3.9 KiB
Raw Blame History

🗄️ Twilio-project 数据库设置指南

📋 概述

本指南将帮你为翻译服务应用设置 Supabase 数据库,包括创建所有必要的表结构、安全策略和索引。

🔧 快速设置步骤

方法一:手动设置(推荐)

  1. 访问 Supabase 控制台

    https://supabase.com/dashboard/project/poxwjzdianersitpnvdy
    
  2. 进入 SQL Editor

    • 在左侧菜单中点击 "SQL Editor"
    • 点击 "New query"
  3. 执行初始化脚本

    • 复制 database-init.sql 文件的全部内容
    • 粘贴到 SQL Editor 中
    • 点击 "Run" 执行
  4. 验证设置

    • 在左侧菜单点击 "Table Editor"
    • 确认以下表已创建:
      • user_profiles
      • translator_profiles
      • call_records
      • appointments
      • document_translations
      • payments
      • system_settings

方法二:自动化脚本

  1. 安装依赖

    npm install @supabase/supabase-js
    
  2. 获取 Service Role Key

    • 在 Supabase 控制台 → Settings → API
    • 复制 "service_role" 密钥
  3. 更新脚本配置

    • 编辑 init-database.js
    • 替换 YOUR_SERVICE_ROLE_KEY_HERE 为实际密钥
  4. 运行初始化脚本

    node web-app/init-database.js
    

📊 数据库结构

核心表结构

表名 用途 主要字段
user_profiles 用户档案 username, full_name, email, account_balance
translator_profiles 翻译员信息 specializations, languages, hourly_rate, rating
call_records 通话记录 call_type, duration_minutes, total_amount
appointments 预约管理 appointment_date, service_type, status
document_translations 文档翻译 original_filename, status, completion_percentage
payments 支付记录 amount, payment_status, payment_method
system_settings 系统配置 setting_key, setting_value, setting_type

🔒 安全特性

  • 行级安全 (RLS): 所有表都启用了 RLS
  • 用户隔离: 用户只能访问自己的数据
  • 角色权限: 不同角色有不同的访问权限
  • 数据验证: 表约束确保数据完整性

📈 性能优化

  • 索引优化: 为常用查询字段创建索引
  • 触发器: 自动更新时间戳
  • 约束检查: 确保数据有效性

🎯 默认系统设置

初始化后会自动创建以下系统设置:

设置项 说明
voice_call_rate 80.00 语音通话费率(元/小时)
video_call_rate 120.00 视频通话费率(元/小时)
translator_rate 50.00 翻译员费率(元/小时)
min_call_duration 1 最小通话时长(分钟)
supported_languages [多语言数组] 支持的语言列表
max_file_size 10485760 最大文件大小10MB
supported_file_types [文件类型数组] 支持的文件类型

🔍 验证检查

执行以下 SQL 来验证设置是否成功:

-- 检查表是否存在
SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = 'public';

-- 检查系统设置
SELECT * FROM system_settings;

-- 检查 RLS 策略
SELECT schemaname, tablename, policyname 
FROM pg_policies 
WHERE schemaname = 'public';

🚨 故障排除

常见问题

  1. 权限错误

    • 确保使用正确的 API 密钥
    • 检查用户权限设置
  2. 表创建失败

    • 检查 SQL 语法
    • 确认没有重复的表名
  3. RLS 策略问题

    • 验证策略语法
    • 检查用户认证状态

联系支持

如果遇到问题,请检查:

  • Supabase 项目状态
  • 网络连接
  • API 密钥有效性

完成确认

数据库设置完成后,你应该能够:

  • 在 Supabase 控制台看到所有表
  • 系统设置表包含默认值
  • RLS 策略正确应用
  • 应用可以正常连接数据库

现在你可以开始使用翻译服务应用了!🎉