# 数据库设计 ## 表结构 ### users (用户表) | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER PRIMARY KEY | 用户ID | | username | VARCHAR(50) UNIQUE | 用户名 | | password_hash | VARCHAR(255) | 密码哈希 | | email | VARCHAR(100) | 邮箱 | | created_at | DATETIME | 创建时间 | | updated_at | DATETIME | 更新时间 | | storage_used | BIGINT | 已用存储(字节) | | storage_limit | BIGINT | 存储上限(字节) | ### files (文件表) | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER PRIMARY KEY | 文件ID | | user_id | INTEGER | 所属用户ID | | parent_id | INTEGER | 父文件夹ID | | name | VARCHAR(255) | 文件名 | | type | VARCHAR(20) | 文件类型 | | size | BIGINT | 文件大小 | | path | VARCHAR(500) | 存储路径 | | hash | VARCHAR(64) | 文件哈希 | | is_folder | BOOLEAN | 是否文件夹 | | created_at | DATETIME | 创建时间 | | updated_at | DATETIME | 更新时间 | | deleted_at | DATETIME | 删除时间 | ### shares (分享表) | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER PRIMARY KEY | 分享ID | | file_id | INTEGER | 文件ID | | share_token | VARCHAR(64) | 分享令牌 | | password | VARCHAR(255) | 访问密码 | | expires_at | DATETIME | 过期时间 | | view_count | INTEGER | 查看次数 | | created_at | DATETIME | 创建时间 | ### sync_logs (同步日志) | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER PRIMARY KEY | 日志ID | | user_id | INTEGER | 用户ID | | file_id | INTEGER | 文件ID | | action | VARCHAR(20) | 操作类型 | | status | VARCHAR(20) | 状态 | | created_at | DATETIME | 创建时间 | ## 索引 - files: user_id, parent_id, hash - shares: share_token - sync_logs: user_id, created_at