- 新增用户注册和登录系统 (login.html, register.html) - 集成Supabase数据库连接 (config.js, api.js) - 完善数据库架构设计 (database-schema.sql) - 添加部署指南和配置文档 (DEPLOYMENT_GUIDE.md) - 修复主页面结构和功能完善 (index.html) - 支持通话记录保存到数据库 - 完整的账单管理和用户认证流程 - 集成OpenAI、Twilio、Stripe等API服务
146 lines
3.9 KiB
Markdown
146 lines
3.9 KiB
Markdown
# 🗄️ 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 策略正确应用
|
||
- ✅ 应用可以正常连接数据库
|
||
|
||
现在你可以开始使用翻译服务应用了!🎉 |