Article
2026-06-30-襷の系譜-选手关系-v0.1-PRD
襷の系譜 选手关系 V0.1 PRD
日期:2026-06-30
关联文档:
1. 版本目标
选手关系 V0.1 的目标是,在选手页内上线一个已经可用、可解释、可持续扩展的关系模块。
这一版不追求完整关系系统,不做图谱,不做复杂算法,不做独立关系入口。它只完成一件事:
让用户打开一个选手页时,能够立刻看到“这个人和谁关系最深,以及为什么”。
2. 产品定位
本版本定位为 选手关系的第一版汇总能力。
它是整个多角度关系体系的起点,但前台形态保持克制。
本版本确定如下原则:
- 前台采用
汇总展示,不拆分独立关系入口。 - 关系体系长期仍然是
多角度关系测算。 - 第一版以
直接对抗为第一优先关系。 - 第一版采用
分数隐性、理由显性。 - 第一版基于现有数据推导,不新增核心关系业务表。
- 第一版通过
缓存预计算 + 懒计算落地。
3. 使用场景
用户进入任意一个选手页时,应当能快速完成以下动作:
- 看到与该选手关系最深的一批人。
- 直观理解这些关系是由哪些事实构成的。
- 顺着感兴趣的关系继续点进其他选手页。
本版本的关系模块承担的不是“做分析工具”,而是“增强浏览吸引力”和“建立关系浏览路径”。
4. 页面范围
本版本只在选手页内上线关系模块。
页面位置:
/{locale}/players/[slug]
本版本不新增:
- 独立关系页
- 双人对抗页
- 图谱页
- 关系筛选页
这些方向全部留给后续版本。
5. 模块定义
选手页新增一个固定模块:
- 模块名称:
与他关系最深的选手
模块是一个 汇总列表,不是分 Tab,不是图谱,不是大段说明文。
每个相关选手卡片必须包含:
- 选手姓名
- 1 到 3 条关系理由
- 可点击进入该选手详情页
如果理由不足,则不进入列表。
6. 第一版关系类型
第一版固定采用以下 3 类关系来源,并按统一汇总结果展示。
6.1 直接对抗
这是第一版的主关系,排序权重最高。
定义固定为:
两名选手在同场竞技、同一赛事、同一项目、同一组中出现,记为一次直接对抗。
这个定义对驿传和非驿传赛事完全一致。
在驿传场景下:
- 同一届
- 同一区
即视为一次直接对抗。
直接对抗用于表达:
- 谁和他最常正面对位
- 这些对抗持续了多久
- 是否跨越了高中、大学、实业团等不同阶段
前台文案必须使用事实表达,不给出胜负判断。
允许使用的表达:
驿传中 3 次同区直接对抗高中到大学共 5 次同场直接对位在箱根与出云中多次正面相遇
禁止使用的表达:
- 经常赢过
- 压制
- 克星
- 宿敌
6.2 并肩作战
这是第一版的第二关系来源,负责补足故事性和普适覆盖。
定义固定为:
两名选手在同一组织体系内,具有明确时间重叠或共同出场经历,记为并肩作战关系。
第一版只纳入以下场景:
- 同校且时间重叠
- 同校且共同参加过同一届驿传或同一阶段重要赛事
- 同队多年并存且共同承担主力出场
这一类关系用于表达:
- 同一时期的队友
- 共同构成某一阶段队伍面貌的人
- 即使不是明星,也能成立的共同经历关系
允许使用的表达:
大学时期 4 年同队101 回、102 回连续共同出场同一时期共同承担队伍主力区间
6.3 同阶段高频相遇
这是第一版的第三关系来源,权重低于前两者。
定义固定为:
两名选手在同一阶段、同一类重要赛事中多次出现,但不满足严格直接对抗条件,记为高频相遇关系。
这一类关系的作用只有一个:补足那些确实长期处于同一舞台、但没有大量直接对抗的选手关系。
允许使用的表达:
大学时期多次在全国大赛相遇同年代长期出现在同一舞台
如果当前数据不足,本关系可以返回空,但产品定义保留。
7. 汇总规则
前台虽然展示为一个汇总模块,但内部关系来源固定分层。
本版本的统一排序规则固定为:
直接对抗并肩作战同阶段高频相遇
汇总原则如下:
- 同一个人可以同时命中多种关系。
- 多种关系命中时,前台应合并展示为一个人,而不是重复出现。
- 每个人最多展示 3 条理由。
- 理由优先展示最硬的事实,优先级与排序规则一致。
这意味着第一版虽然没有显性分数,但内部已经有明确的稳定排序。
8. 分数策略
第一版不在前台展示任何总分、权重分或关系指数。
内部允许存在排序分值,但只用于排序,不用于用户展示。
本版本固定采用:
分数隐性理由显性
原因如下:
- 当前数据仍在补全
- 权重会持续迭代
- 显性分数会让用户误以为算法已稳定
因此,前台只展示人和理由,不展示数字分。
9. 展示规则
本版本前台展示规则固定如下:
- 模块展示一个汇总列表。
- 默认展示最相关的 6 人。
- 每人展示 1 到 3 条理由。
- 理由文案必须是短句,不写长说明。
- 理由优先体现事实,不体现评价。
展示示例:
-
A 选手
- 驿传中 3 次同区直接对抗
- 高中到大学共 5 次同场直接对位
-
B 选手
- 大学时期 4 年同队
- 101 回、102 回连续共同出场
如果某个选手只有很弱、很模糊的关系,不进入前 6。
10. 胜负关系边界
第一版明确不做主动胜负判断。
即使系统已经可以从事实数据中判断部分比赛结果,也不能在选手页关系模块中使用以下表达:
- 经常赢谁
- 对谁胜率更高
- 谁压过谁
原因不是不能算,而是产品阶段不适合主动给出这类高争议结论。
胜负关系 在后续版本中可以作为独立功能存在,例如:
- 用户主动选择两个选手,查看两人历史对抗记录
但这不属于本版本范围。
11. 数据与实现原则
本版本不新增核心业务主表,也不改变主数据模型设计。
关系是派生结果,不是主事实。
主事实仍然来自:
- 比赛
- 项目
- 组别
- 成绩
- 选手参赛记录
- 所属经历
本版本的实现原则固定如下:
- 基于现有事实数据计算关系
- 将关系结果写入缓存
- 不为第一版关系功能单独设计新的核心关系表
12. 缓存策略
本版本缓存方案固定如下:
12.1 基本原则
- 核心选手采用预计算
- 非核心选手采用首次访问懒计算
- 缓存结果服务于选手页汇总模块
- 缓存结构必须支持未来继续增加关系类型
12.2 核心选手
第一版定义 核心选手 为:
- 当前站内已收录信息较完整的重点选手
- 箱根、出云、全日本等关键赛事中高关注度选手
- 首页、列表页、搜索结果中更容易被访问到的选手
这些人通过任务预计算关系缓存。
12.3 非核心选手
非核心选手不做全量预热。
其关系缓存由用户首次打开页面时触发生成,生成后写入缓存,后续复用。
12.4 缓存组织
缓存组织必须按 关系类型可扩展 的思路设计。
原因是:
- 当前第一版虽然主打直接对抗
- 但整个方向仍然是多角度关系体系
因此,缓存不能只为单一关系写死。
12.5 缓存内容
缓存结果必须至少包含:
- 相关选手列表
- 汇总排序结果
- 每个相关选手对应的理由摘要
- 生成时间
第一版缓存的是 结果与摘要,不是前台展示时再做全量计算。
13. 非目标
本版本明确不做以下事项:
- 图谱可视化
- 独立关系入口
- 用户发现式推荐
- 用户登录相关能力
- 显性分数
- 胜负标签
- 宿敌标签
- 全量赛事穷尽覆盖
- 复杂算法研究
这些内容都属于后续版本迭代范围。
14. 成功标准
本版本成功标准固定如下:
- 选手页关系模块稳定展示,不依赖临时手工整理
- 大部分核心选手页能出现有吸引力的关系结果
- 用户可以一眼理解“为什么是这些人”
- 关系结果既能覆盖明星选手,也不会让普通选手页完全空掉
- 当前结构可以随着数据增加自然变强,而不需要推翻重做
15. 后续迭代方向
本版本上线后,后续迭代方向按以下顺序推进:
- 扩大直接对抗覆盖赛事范围
- 提升并肩作战的故事性表达
- 补强同阶段高频相遇的数据基础
- 增加独立胜负关系查询
- 评估是否开放独立关系入口
- 在数据足够后再研究显性算法表达或关系图谱
本 PRD 作为 选手关系 V0.1 的已定版需求,后续只做迭代,不再回退到重新定义方向。