组员 1 指导手册:数据库建模与图纸设计(ER/DFD)
1. 项目核心逻辑说明
本项目是一个基于 Serverless 架构的存算分离系统。核心实体包括用户、用户组、文件元数据、分享、存储后端以及审计日志。
2. 数据库实体关系图 (ER Diagram)
我已经为你生成了符合项目最新逻辑的 ER 图。你可以直接复制下方的代码到 Mermaid Live Editor 生成图片并插入报告。
mermaid
erDiagram
User {
text id PK "用户唯一标识"
text name "用户名 (Unique)"
text email "邮箱 (Unique)"
text password_hash "密码哈希"
text role "角色: admin/user"
text status "状态: 活跃/已暂停"
real storage_used "已使用存储空间 (GB)"
text group_id FK "所属用户组 ID"
int created_at "创建时间戳"
int updated_at "最后更新时间 (用于令牌指纹)"
}
Group {
text id PK "组唯一标识"
text name "组名"
text description "描述"
real storage_quota "默认存储配额 (GB)"
int max_users "最大用户数限制"
int current_users "当前用户统计"
}
File {
int id PK "自增 ID"
text name "文件名/文件夹名"
int size_bytes "文件大小 (字节)"
text mime_type "MIME 类型"
text storage_key "物理存储键"
text storage_backend_id FK "存储后端 ID"
text user_id FK "所属用户 ID"
int parent_id FK "父目录 ID (自关联)"
text path "逻辑路径"
text type "分类: folder/pdf/image/video/zip/code"
text status "状态: 活跃/违规下架"
int starred "星标收藏 (0/1)"
int download_count "累计下载量"
int created_at "创建时间"
}
Share {
text id PK "分享唯一 ID"
int file_id FK "关联文件 ID"
text user_id FK "分享者 ID"
text share_code "提取码 (Unique)"
int expiration_days "有效天数"
int expires_at "过期时间戳"
int access_count "访问次数统计"
}
Backend {
text id PK "后端唯一标识"
text name "后端名称"
text type "类型: r2/s3/webdav/ftp/sftp"
int enabled "是否启用 (0/1)"
int is_default "是否为系统默认 (0/1)"
text config "JSON 配置信息"
}
Allocation {
text id PK "分配记录 ID"
text group_id FK "关联组 ID"
text storage_backend_id FK "关联存储后端 ID"
real quota_gb "分配的配额 (GB)"
}
Log {
int id PK "自增日志 ID"
text action "动作名称"
text user_id FK "操作者 ID"
text user_name "操作者姓名"
text status "状态: 成功/警告/失败"
text details "操作详情"
text ip "客户端 IP"
int file_id "相关文件 ID"
text file_name "相关文件名"
int created_at "记录时间"
}
Group ||--o{ User : "包含"
User ||--o{ File : "拥有"
File ||--o{ File : "嵌套(parent_id)"
File ||--o{ Share : "生成提取码"
Backend ||--o{ File : "存储实体"
Group ||--o{ Allocation : "配额挂载"
Backend ||--o{ Allocation : "资源输出"
User ||--o{ Log : "操作审计"3. 给 AI 的指令(Prompt)
请直接复制以下内容发给 AI: |> "我是一个数据库设计师,正在做一个《分布式对象存储系统》的课程设计。 |> 我的组长已经完成了核心开发并提供了精准的 ER 图逻辑。 |> |> 要求: |> 1. 请根据我提供的 Mermaid 代码,帮我分析系统的【存算分离】和【自关联文件夹】设计优势。 |> 2. 请帮我设计系统的 DFD 数据流图。包括 0 层(顶层)图和 1 层图。加工过程应包含:身份认证、文件管理(上传/批量移动/下架)、分享管理、存储后端配置。 |> 3. 请根据 ER 图生成一份标准格式的【数据字典】表格,包含字段名、数据类型、约束和说明。 |> |> 【Mermaid 代码见上方内容】"
组员 1 注意事项:
- 物理后端:在 DFD 图里要体现出数据流向 Cloudflare R2(Worker 代理)。
- 状态字段:特别注意 File 表的
status字段,它是实现管理员下架功能的关键。