Skip to content

Latest commit

 

History

History
282 lines (231 loc) · 6.89 KB

File metadata and controls

282 lines (231 loc) · 6.89 KB

数据库集合说明

本文档说明班级盒子使用的云数据库集合。示例数据均为假数据,仅用于说明字段结构。

notices

用途:存储班级事项,包括通知、考试安排、作业、活动、资料等内容。

主要字段:

字段 含义
_id 云数据库自动生成的记录 ID
title 事项标题
category 事项分类
status 事项状态,例如 published
content 事项正文说明
deadline 截止时间或相关时间
endTime 结束时间
location 地点或补充说明
course 课程、活动或事项名称
timeLabel 时间字段显示名称
images 图片列表,通常包含 fileIDname 等字段
attachments 附件列表,通常包含 fileIDnamesizetype 等字段
links 相关链接列表
publisherOpenid 发布人的 openid
publisherName 发布人显示名称
isImportant 是否重要
pinned 是否置顶
createdAt 创建时间
updatedAt 更新时间

示例数据:

{
  "title": "示例班会通知",
  "category": "班级通知",
  "status": "published",
  "content": "这是一条示例事项,请替换为真实内容。",
  "deadline": "2026-06-10 19:00",
  "endTime": "",
  "location": "示例教室 A101",
  "course": "班会",
  "timeLabel": "相关时间",
  "images": [],
  "attachments": [],
  "links": [
    {
      "title": "示例链接",
      "url": "https://example.com"
    }
  ],
  "publisherOpenid": "openid_example",
  "publisherName": "示例管理员",
  "isImportant": false,
  "pinned": false,
  "createdAt": "2026-06-01T00:00:00.000Z",
  "updatedAt": "2026-06-01T00:00:00.000Z"
}

users

用途:存储小程序用户身份、认证状态和权限角色。

主要字段:

字段 含义
_id 云数据库自动生成的记录 ID
openid 用户 openid
name 已认证成员姓名
studentId 已认证成员学号
role 用户角色,支持 useradminsuperAdmin
verified 是否完成班级成员身份认证
createdAt 创建时间
updatedAt 更新时间

示例数据:

{
  "openid": "openid_example",
  "name": "示例学生",
  "studentId": "2026000000",
  "role": "user",
  "verified": true,
  "createdAt": "2026-06-01T00:00:00.000Z",
  "updatedAt": "2026-06-01T00:00:00.000Z"
}

admin_invite_codes

用途:存储一次性管理员邀请码和超级管理员邀请码。

主要字段:

字段 含义
_id 云数据库自动生成的记录 ID
code 邀请码
role 邀请码授予的角色,支持 adminsuperAdmin
used 是否已使用
usedByOpenid 使用者 openid
usedAt 使用时间
createdAt 创建时间
expiredAt 过期时间

管理员邀请码示例:

{
  "code": "BW-EXAMPLE-0001",
  "role": "admin",
  "used": false,
  "usedByOpenid": null,
  "usedAt": null,
  "createdAt": "2026-06-01T00:00:00.000Z",
  "expiredAt": "2026-12-31T23:59:59.000Z"
}

超级管理员邀请码示例:

{
  "code": "SUPER-EXAMPLE-0001",
  "role": "superAdmin",
  "used": false,
  "usedByOpenid": null,
  "usedAt": null,
  "createdAt": "2026-06-01T00:00:00.000Z",
  "expiredAt": "2026-12-31T23:59:59.000Z"
}

class_members

用途:存储班级成员基础名单,用于姓名和学号认证。

主要字段:

字段 含义
_id 云数据库自动生成的记录 ID
name 成员姓名
studentId 成员学号
boundOpenid 已绑定的小程序用户 openid
verified 是否已完成认证
verifiedAt 认证时间
createdAt 创建时间
updatedAt 更新时间

班级成员示例:

{
  "name": "示例学生",
  "studentId": "2026000000",
  "boundOpenid": null,
  "verified": false,
  "createdAt": "2026-06-01T00:00:00.000Z",
  "updatedAt": "2026-06-01T00:00:00.000Z"
}

subscribers

用途:存储用户对订阅消息的授权记录,用于发送下一次事项提醒。

主要字段:

字段 含义
_id 云数据库自动生成的记录 ID
openid 订阅用户 openid
templateId 订阅消息模板 ID
used 本次订阅授权是否已使用
enabled 是否启用
createdAt 创建时间
updatedAt 更新时间

示例数据:

{
  "openid": "openid_example",
  "templateId": "template_example",
  "used": false,
  "enabled": true,
  "createdAt": "2026-06-01T00:00:00.000Z",
  "updatedAt": "2026-06-01T00:00:00.000Z"
}

favorites

用途:存储用户收藏事项记录。

主要字段:

字段 含义
_id 云数据库自动生成的记录 ID
openid 收藏用户 openid
noticeId 被收藏事项 ID
createdAt 收藏时间

示例数据:

{
  "openid": "openid_example",
  "noticeId": "notice_example",
  "createdAt": "2026-06-01T00:00:00.000Z"
}

security_counters

用途:使用固定时间桶记录发布、编辑、邀请码尝试等频率限制计数。该集合应只允许云函数写入,普通用户不应直接写入。

主要字段:

字段 含义
_id 由动作、openid 和时间桶组成的确定性记录 ID
openid 操作用户 openid
action 计数动作,例如 create_noticeupdate_noticeapply_admin_attempt
count 当前时间桶内的计数值
windowStart 当前固定时间桶的开始时间
windowMs 时间桶长度,单位毫秒
expiresAt 建议清理该计数记录的时间
createdAt 创建时间
updatedAt 更新时间

示例数据:

{
  "openid": "openid_example",
  "action": "create_notice",
  "count": 1,
  "windowStart": "2026-06-01T00:00:00.000Z",
  "windowMs": 60000,
  "expiresAt": "2026-06-01T00:02:00.000Z",
  "createdAt": "2026-06-01T00:00:00.000Z",
  "updatedAt": "2026-06-01T00:00:00.000Z"
}

operation_logs

用途:记录身份认证、管理员授权、事项发布、编辑、删除等关键操作日志。日志中不应保存正文原文、完整邀请码、真实敏感配置或完整请求事件。

主要字段:

字段 含义
_id 云数据库自动生成的记录 ID
openid 操作用户 openid
role 操作时用户角色
action 操作类型,例如 verify_memberapply_admincreate_noticeupdate_noticedelete_notice
targetType 操作目标类型
targetId 操作目标 ID
success 操作是否成功
detail 脱敏后的扩展信息,不包含姓名、学号、正文或完整邀请码
createdAt 创建时间

示例数据:

{
  "openid": "openid_example",
  "action": "create_notice",
  "role": "admin",
  "success": true,
  "createdAt": "2026-06-01T00:00:00.000Z"
}