diff --git a/architecture/database-schema.md b/architecture/database-schema.md new file mode 100644 index 0000000..5b10333 --- /dev/null +++ b/architecture/database-schema.md @@ -0,0 +1,64 @@ +# 数据库 Schema 文档 + +## users 表 + +| 字段 | 类型 | 说明 | +|------|------|------| +| id | INTEGER | 主键,自增 | +| username | TEXT | 用户名,唯一 | +| password_hash | TEXT | 密码哈希 | +| email | TEXT | 邮箱 | +| storage_used | INTEGER | 已用存储(字节) | +| storage_limit | INTEGER | 存储上限(字节) | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | + +## files 表 + +| 字段 | 类型 | 说明 | +|------|------|------| +| id | INTEGER | 主键,自增 | +| user_id | INTEGER | 用户ID,外键 | +| parent_id | INTEGER | 父文件夹ID | +| name | TEXT | 文件名 | +| type | TEXT | 文件类型 | +| size | INTEGER | 文件大小 | +| path | TEXT | 存储路径 | +| hash | TEXT | 文件哈希 | +| is_folder | INTEGER | 是否文件夹 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | +| deleted_at | DATETIME | 删除时间 | + +## shares 表 + +| 字段 | 类型 | 说明 | +|------|------|------| +| id | INTEGER | 主键,自增 | +| file_id | INTEGER | 文件ID,外键 | +| share_token | TEXT | 分享令牌,唯一 | +| password | TEXT | 访问密码 | +| expires_at | DATETIME | 过期时间 | +| view_count | INTEGER | 查看次数 | +| created_at | DATETIME | 创建时间 | + +## sync_status 表 + +| 字段 | 类型 | 说明 | +|------|------|------| +| id | INTEGER | 主键,自增 | +| user_id | INTEGER | 用户ID,外键 | +| last_sync_time | DATETIME | 最后同步时间 | +| status | TEXT | 状态 | +| total_files | INTEGER | 总文件数 | +| synced_files | INTEGER | 已同步文件数 | + +## 索引 + +```sql +CREATE INDEX idx_files_user ON files(user_id); +CREATE INDEX idx_files_parent ON files(parent_id); +CREATE INDEX idx_files_hash ON files(hash); +CREATE INDEX idx_shares_token ON shares(share_token); +CREATE INDEX idx_sync_user ON sync_status(user_id); +```