# 数据模型和Schema变更 ## 现有数据模型状态 **用户模型**: - **现状**: 设计良好,包含完整的用户管理和权限系统 - **关键属性**: - `id`: number - 主键标识符 - `username`: string - 唯一用户名(主要登录标识) - `email`: string | null - 可选邮箱地址 - `password`: string - 加密密码(bcrypt哈希) - `avatarFileId`: number | null - 头像文件ID - `roles`: Role[] - 用户角色多对多关系 - **关系**: - 与Role实体建立正确的多对多关系映射 - 与File实体建立头像文件的多对一关系映射 **文件管理模型**: - **现状**: 新增完整的文件管理系统,支持MinIO对象存储 - **关键属性**: - `id`: number - 主键标识符 - `name`: string - 文件名 - `path`: string - MinIO存储路径 - `size`: number - 文件大小(字节) - `type`: string - 文件类型 - `uploadUserId`: number - 上传用户ID - `uploadTime`: Date - 上传时间 - **关系**: 与User实体建立多对一关系映射 **优化重点**: 保持现有数据模型不变,新增文件管理功能,优化查询性能和验证逻辑 ## Schema集成策略 - **数据库变更要求**: 新增文件管理表,优化现有表结构 - **新表**: file表(文件管理) - **修改的表**: 无结构性变更 - **新索引**: 为文件查询字段添加索引(name, uploadUserId, uploadTime) - **迁移策略**: 使用TypeORM迁移工具,确保数据完整性 ## 向后兼容性 - 保持所有现有API端点不变 - 确保现有数据查询继续正常工作 - 不修改任何现有字段定义 - 新增功能通过可选字段或新端点实现