- 新增用户注册和登录系统 (login.html, register.html) - 集成Supabase数据库连接 (config.js, api.js) - 完善数据库架构设计 (database-schema.sql) - 添加部署指南和配置文档 (DEPLOYMENT_GUIDE.md) - 修复主页面结构和功能完善 (index.html) - 支持通话记录保存到数据库 - 完整的账单管理和用户认证流程 - 集成OpenAI、Twilio、Stripe等API服务
3.9 KiB
3.9 KiB
🗄️ Twilio-project 数据库设置指南
📋 概述
本指南将帮你为翻译服务应用设置 Supabase 数据库,包括创建所有必要的表结构、安全策略和索引。
🔧 快速设置步骤
方法一:手动设置(推荐)
-
访问 Supabase 控制台
https://supabase.com/dashboard/project/poxwjzdianersitpnvdy
-
进入 SQL Editor
- 在左侧菜单中点击 "SQL Editor"
- 点击 "New query"
-
执行初始化脚本
- 复制
database-init.sql
文件的全部内容 - 粘贴到 SQL Editor 中
- 点击 "Run" 执行
- 复制
-
验证设置
- 在左侧菜单点击 "Table Editor"
- 确认以下表已创建:
- ✅ user_profiles
- ✅ translator_profiles
- ✅ call_records
- ✅ appointments
- ✅ document_translations
- ✅ payments
- ✅ system_settings
方法二:自动化脚本
-
安装依赖
npm install @supabase/supabase-js
-
获取 Service Role Key
- 在 Supabase 控制台 → Settings → API
- 复制 "service_role" 密钥
-
更新脚本配置
- 编辑
init-database.js
- 替换
YOUR_SERVICE_ROLE_KEY_HERE
为实际密钥
- 编辑
-
运行初始化脚本
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';
🚨 故障排除
常见问题
-
权限错误
- 确保使用正确的 API 密钥
- 检查用户权限设置
-
表创建失败
- 检查 SQL 语法
- 确认没有重复的表名
-
RLS 策略问题
- 验证策略语法
- 检查用户认证状态
联系支持
如果遇到问题,请检查:
- Supabase 项目状态
- 网络连接
- API 密钥有效性
✅ 完成确认
数据库设置完成后,你应该能够:
- ✅ 在 Supabase 控制台看到所有表
- ✅ 系统设置表包含默认值
- ✅ RLS 策略正确应用
- ✅ 应用可以正常连接数据库
现在你可以开始使用翻译服务应用了!🎉