4-data-models.md 1.8 KB

4. Data Models

基于PRD需求,定义将在前端和后端之间共享的核心数据模型/实体:

4.1 User(用户模型)

用途: 管理系统用户账户信息,支持认证和权限管理

关键属性:

  • id: string - 用户唯一标识符(UUID)
  • email: string - 用户邮箱,用于登录和通信
  • password: string - 加密后的密码(bcrypt哈希)
  • name: string - 用户显示名称
  • role: string - 用户角色(admin, user等)
  • status: string - 用户状态(active, inactive等)
  • createdAt: Date - 创建时间
  • updatedAt: Date - 最后更新时间

TypeScript接口:

interface User {
  id: string;
  email: string;
  password: string;
  name: string;
  role: UserRole;
  status: UserStatus;
  createdAt: Date;
  updatedAt: Date;
}

type UserRole = 'admin' | 'user';
type UserStatus = 'active' | 'inactive' | 'suspended';

关系:

  • 一个用户可以创建多个内容条目
  • 一个用户可以属于多个角色(如需扩展)

4.2 Role(角色模型)

用途: 管理系统角色和权限配置

关键属性:

  • id: string - 角色唯一标识符
  • name: string - 角色名称
  • permissions: string[] - 权限列表
  • description: string - 角色描述
  • createdAt: Date - 创建时间

TypeScript接口:

interface Role {
  id: string;
  name: string;
  permissions: Permission[];
  description: string;
  createdAt: Date;
}

type Permission = 'user:read' | 'user:write' | 'content:read' | 'content:write' | 'settings:read' | 'settings:write';

关系:

  • 一个角色可以分配给多个用户

会话管理策略

会话存储: Redis 存储内容: JWT令牌黑名单、用户会话状态 过期策略: 基于JWT过期时间自动清理