# 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接口:** ```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接口:** ```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过期时间自动清理