2
0

data-model-schema-changes.md 1.5 KB

数据模型和Schema变更

现有数据模型状态

用户模型:

  • 现状: 设计良好,包含完整的用户管理和权限系统
  • 关键属性:
    • id: number - 主键标识符
    • username: string - 唯一用户名(主要登录标识)
    • email: string | null - 可选邮箱地址
    • password: string - 加密密码(bcrypt哈希)
    • roles: Role[] - 用户角色多对多关系
  • 关系: 与Role实体建立正确的多对多关系映射

文件管理模型:

  • 现状: 新增完整的文件管理系统,支持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端点不变
  • 确保现有数据查询继续正常工作
  • 不修改任何现有字段定义
  • 新增功能通过可选字段或新端点实现