Skip to main content
Version: Current

数据库 Schema

Schema: backend/prisma/schema.prisma

模型

RoundSnapshot

每房间一条,轮次边界 async upsert,Redis 崩溃恢复用。

字段说明
survivorEmails存活 internalEmail 列表
currentRound轮次
started是否已开始

RoundElimination

淘汰明细,eliminatedReason: no_answer | majority_choice

GameResult

字段说明
winnerEmailinternalEmail
tierEmails平局 email[]
finalRound结束轮次
note

玩家 displayName 仅存 Redis,不在 PG。GameResult 存 internalEmail。

Redis 完整 Key 列表

# 游戏
game:{roomId}:started | state | round | answers | winner | tie
current_question:{roomId}
room:{roomId}:survivors | eliminated
user:{email}:answer:{qid} | session | online
recovery:{roomId}:disabled

# 登录码 & 玩家(新增)
game:{roomId}:login_code
game:{roomId}:player_number_seq
player:{uuid}:displayNumber | displayName | internalEmail
internal:{email}:displayName

Migration

npx prisma migrate dev      # 开发
npx prisma migrate deploy # 生产
npx prisma generate # backend client

ER 图