数据库表设计

队伍表 team

字段:

  • id 主键 bigint (最简单、连续,放 URL 上比较简短,但缺点是爬虫)
  • name 队伍名称
  • decription 描述
  • maxNum 最大人数
  • expireTime 过期时间
  • userId 创建人
  • status 0 - 公开, 1- 私密, 2 - 加密
  • password 队伍密码
  • createTime 创建时间
  • updateTime 更新时间
  • isDelete 是否删除

用户-队伍表 user_team

关系:

  1. 用户加入了哪些队伍?
  2. 队伍有哪些用户?

两种实现方式:

  1. 建立用户-队伍关系表 teamId userId (便于修改,查询性能高一点,不用全表遍历)
  2. 用户表补充已加入的队伍字段,队伍表补充已加入的用户字段(便于查询,不用写多对多连表查询代码,可以直接根据队伍查用户、根据用户查队伍)

字段:

  • id 主键
  • userId 用户 id
  • teamId 队伍 id
  • joinTime 加入时间
  • createTime 创建时间
  • updateTime 更新时间
  • isDelete 是否删除

为什么需要请求参数包装类?

  1. 请求参数名称 / 类型和实体类不一样
  2. 有一些参数用不到,如果要自动生成接口文档,会增加理解成本(参数太多,冗余)
  3. 对个实体类映射到同一个对象

为什么需要包装类?

  1. 存在有些字段需要隐藏,不能返回给前端,如用户密码