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

146 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🗄️ 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. **安装依赖**
```bash
npm install @supabase/supabase-js
```
2. **获取 Service Role Key**
- 在 Supabase 控制台 → Settings → API
- 复制 "service_role" 密钥
3. **更新脚本配置**
- 编辑 `init-database.js`
- 替换 `YOUR_SERVICE_ROLE_KEY_HERE` 为实际密钥
4. **运行初始化脚本**
```bash
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 来验证设置是否成功:
```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 策略正确应用
- ✅ 应用可以正常连接数据库
现在你可以开始使用翻译服务应用了!🎉