Skip to content

小程序表设计

阿里云:云数据库RDS/实例列表。

要实现 “每日思维挑战”小程序,数据库表和 API 需要支持 用户答题、题目管理、分享裂变、排行榜 等核心功能。

📌 数据库表设计

1️⃣ users(用户表)

  • 记录用户信息,支持微信授权登录
字段名类型说明
idINT(PK)用户ID
openidVARCHAR微信openid(唯一)
nicknameVARCHAR昵称
avatarVARCHAR头像URL
created_atDATETIME注册时间

2️⃣ questions(题目表)

  • 存储每日思维挑战的题目
字段名类型说明
idINT(PK)题目ID
titleVARCHAR题目内容
imageVARCHAR题目图片(可选)
optionsJSON选项列表(A/B/C/D)
correct_answerCHAR(1)正确答案(A/B/C/D)
explanationTEXT题目解析
categoryVARCHAR题目分类
created_atDATETIME创建时间

3️⃣ user_answers(用户答题记录)

  • 记录用户的答题情况,计算答题率和排行榜
字段名类型说明
idINT(PK)记录ID
user_idINT用户ID(关联 users)
question_idINT题目ID(关联 questions)
answerCHAR(1)用户选的答案
is_correctBOOLEAN是否答对
answered_atDATETIME答题时间

4️⃣ shares(分享记录表)

  • 记录用户分享行为,解锁解析
字段名类型说明
idINT(PK)记录ID
user_idINT分享人ID(关联 users)
question_idINT题目ID(关联 questions)
shared_atDATETIME分享时间
shared_toJSON分享对象(微信好友/群)

5️⃣ leaderboard(排行榜表)

  • 记录用户的答题积分,用于排行榜
字段名类型说明
idINT(PK)记录ID
user_idINT用户ID(关联 users)
scoreINT答对题目数(得分)
rankINT排名
updated_atDATETIME最后更新

📌 API 设计(V1.0 MVP 核心功能)

1️⃣ 用户相关

API方法说明
/auth/loginPOST用户登录(微信授权)
/user/profileGET获取用户信息

2️⃣ 题目相关

API方法说明
/questions/todayGET获取今日题目
/questions/{id}GET获取题目详情

3️⃣ 答题相关

API方法说明
/answers/submitPOST提交答题(记录答案)
/answers/statsGET获取题目答题统计(A/B/C/D 选择占比)

4️⃣ 分享 & 解析解锁

API方法说明
/shares/createPOST记录分享行为
/questions/{id}/unlockGET查看解析(需分享后解锁)

5️⃣ 排行榜

API方法说明
/leaderboard/topGET获取排行榜(前50名)
/leaderboard/user/{id}GET获取某个用户的排名

📌 逻辑流程

  1. 用户进入小程序,微信授权登录(/auth/login
  2. 获取今日题目(/questions/today
  3. 用户作答(/answers/submit),返回答对/答错反馈
  4. 显示“好友选了什么?”(/answers/stats
  5. 解析内容默认隐藏,用户分享后(/shares/create)解锁(/questions/{id}/unlock
  6. 记录用户分数,更新排行榜(/leaderboard/top

🔥 为什么这样设计?

数据最小化,避免冗余(用户、题目、答题、分享、排行榜)
API 结构清晰,核心功能明确(答题 + 社交裂变)
支持裂变增长,提升用户留存(“分享解锁解析” + 排行榜激励)

这样设计,既保证了核心功能,又能最大化社交传播,满足 MVP 版本 的快速上线需求!🚀