Appearance
徽章与用户徽章数据模型
概述
用于描述路线成就徽章主数据,以及用户的徽章资产与解锁记录。
Badge(徽章主数据)
表示某条路线对应的成就徽章定义。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| badgeId | string | 是 | - | 徽章 ID |
| routeId | string | 是 | - | 关联路线 ID |
| badgeName | string | 是 | - | 徽章名称 |
| badgeIcon | string | 是 | - | 徽章图标 |
| unlockCondition | string | 是 | - | 解锁条件文案 |
| bonusPoints | int | 是 | 0 | 解锁额外积分 |
UserBadge(用户徽章)
记录用户与徽章之间的关系、解锁进度和奖励发放状态。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| userBadgeId | string | 是 | - | 用户徽章记录 ID |
| userId | string | 是 | - | 用户 ID |
| badgeId | string | 是 | - | 徽章 ID |
| unlockStatus | enum | 是 | locked | 当前用户状态 |
| unlockTime | datetime | 否 | null | 解锁时间 |
| bonusPointsGranted | bool | 是 | false | 是否已发放额外积分 |
| createdAt | datetime | 是 | 当前时间 | 创建时间 |
| updatedAt | datetime | 是 | 当前时间 | 更新时间 |
枚举值
unlockStatus
locked:未达成unlockable:满足条件,可解锁unlocked:已解锁
设计要点
Badge是静态主数据,UserBadge是用户维度的资产记录。bonusPoints定义奖励积分额度,bonusPointsGranted用于防止重复发放。unlockTime仅在实际解锁后写入。- 建议以
badgeId + userId建立唯一约束,避免同一用户重复生成同一徽章记录。
