赛事类型索引
阶段、轮次与回合字段的赛事差异表
用赛事类型解释相似字段的不同语义。 本文给出可复核步骤、状态边界、脱敏记录方法与复核路径。
阶段、轮次与回合都描述赛事位置,却回答三个不同问题:阶段说明比赛处于哪一大段,轮次说明同一段中的编排单位,回合说明同一组对阵里的先后场。把三者都填成“半决赛”看似方便,却会让排序、检索和聚合失去含义。本文用独立字段、受控词表和赛制上下文建立差异表。术语审阅表为每个值增加反例:某赛事把“轮”写在淘汰阶段,并不证明它是联赛轮次;来源把第二场称“第二战”,也需规则证据才能映射回合。编辑应保存未映射原词、上下文句和页码,使后来者可以重新解释。
stage、round与leg只有在赛事规则给出关系时才能映射,页面日期或第二次交手本身都不是证据。录入先保存来源原词、语言、上下文和字段位置,再把规范候选放到独立栏;matchday可能是联赛轮次也可能只是比赛日,phase也可能只是编辑分组,无法判定时继续UNKNOWN。合成记录P8仅用来检验字段关系,不对应现实赛事。规则顺序与实际开赛时间分开保存,补赛不会改写round_order;主客互换、重赛和中立场也不能自动产生第一或第二回合。旧系统只有round_text时,迁移先原样复制到raw_position,再逐项提出stage、round、leg候选,报告成功、部分映射、歧义与不适用。界面只提供当前赛制允许的定义,并阻止把阶段拖入轮次栏;只认识旧round结构的接口应返回升级提示,而不是复制其他字段凑数。
分别定义三个字段的问题边界
stage回答赛事结构的大区块,例如资格、小组或淘汰;round回答阶段内部的轮次或比赛日;leg回答一个tie中的场次序号。定义卡包含字段类型、允许值、父字段、是否可空、适用赛制和例外。字段名不能代替定义,读者应能从卡片判断某值为何出现。
赛事只提供“第十二轮”时,可以确定round原文,却未必知道stage。此时stage为UNKNOWN,不默认联赛阶段。只提供“次回合”时,leg有值但tie_id和stage仍可能未知。字段能够部分确定,不要求整条记录一起通过或失败。
- 三字段各自回答单一问题
- 字段允许部分确定
- 名称不能替代定义卡
让阶段成为有版本的结构节点
阶段节点保存stage_id、名称原文、规范名称、父阶段、开始结束边界、规则版本和适用赛季。小组阶段可以有多个组作为子节点,淘汰阶段则连接对阵结构。阶段名称变化用新版本表达,不覆盖旧赛季的叫法。
来源没有明确阶段边界时,开始和结束保持UNKNOWN。不能用第一场和最后一场日期自动定义,因为补赛可能落在其他时段。页面可显示“阶段名称已见,边界待核”,避免空值被读成无限期。删除阶段需有规则证据并保留历史节点。
- 阶段节点绑定规则和赛季
- 边界无证据不自动推算
- 名称变化保留旧版本
处理数字轮次与命名轮次
round既可能是十二这样的序数,也可能是附加赛、揭幕轮等名称。模型保存round_raw、round_order和round_label;只有规则明确排序时才填order。把“八强”机械解析成第八轮会制造错误,因此命名轮次不自动转数字。每个order同时保存rule_ref、赛制版本与有效期;排序验收混入补赛和无序命名轮,确认页面不会用日期或文本中的数字替代正式规则顺序。
同一阶段可能有补赛或延期,比赛日期不必与轮次顺序一致。排序页面先用规则给出的round_order,再以状态和时间辅助,不按实际开赛日重写轮次。未知顺序显示UNKNOWN。跨赛事比较轮次时先检查定义版本,不因数字相同就认定位置相同。
- 原文序号标签三栏保存
- 命名轮次不自动转数字
- 开赛日不重写轮次顺序
用对阵标识约束回合字段
leg只有在同一tie下才有意义。每个回合保存tie_id、leg_no、场地角色、计划时间、状态和来源。两场都叫第一回合却属于不同对阵,不得聚合。赛事为单场淘汰时,leg可以不适用,也可以按规则定义为单场;选择必须写进字段版本。
来源写“次回合”但找不到首回合时,保留leg_no二和来源原文,聚合完整度为UNKNOWN。不能生成一场虚构首回合。回合因重赛增加时,使用事件类型区分重赛与第三回合,不简单把数字顺延。
- 回合必须挂接tie_id
- 缺首回合不生成占位比赛
- 重赛不冒充普通下一回合
建立三字段的关系校验
关系规则检查:阶段是否允许轮次类型,当前赛制是否允许回合,leg是否拥有对阵标识,轮次是否属于该阶段版本。失败时指出具体关系,例如“淘汰阶段缺tie_id”,而不是笼统写位置错误。规则本身有版本与来源。
有些记录合法地缺少round,例如直接以对阵命名的淘汰阶段;校验必须读取赛制配置后判断。配置未知时不拒绝原始记录,进入待核并显示UNKNOWN。批量迁移旧数据前先运行只读报告,避免新关系规则把历史空值自动补成错误事实。
- 失败信息指向具体关系
- 规则读取赛制配置
- 配置未知进入待核
以反向复述验证术语可读性
让第二位编辑只看stage、round、leg及定义卡,复述记录在赛事中的位置,再与来源原文比较。若两位编辑复述不同,先修定义或标UNKNOWN,不通过修改原始值迫使一致。复述结果和争议点保存为审阅记录。
反向测试还包括空值:stage有值、round未知、leg不适用时,读者应看到三个不同状态。导出后若三者都变成短横线,说明传递失败。修正展示层不改变业务值,展示版本另行记录。测试人员还应从页面文字反推三个字段,无法唯一还原时就修改标签和帮助文本。
- 第二编辑执行反向复述
- 争议先修定义不改原文
- 空值状态需跨导出保留
在页面上同时展示语义和限制
字段卡展示规范值、来源原文、赛制、适用赛季、规则版本、观察时间与未知项。标题可以说明差异方法,不能把尚未核对的阶段写成确定事实。具体赛事没有规则来源时,解释栏明确UNKNOWN。
独立图谱不承诺实时比赛位置,也不把名称规范化当身份凭证。规则变化时新增定义版本,旧记录继续指向旧版。修订链说明何时、为何改变解释,使读者能区分赛事推进、术语更新和编辑更正。发布前可用一组反例检验三个维度:小组阶段内存在多个轮次,证明阶段不等于轮次;淘汰阶段只有一场,证明淘汰不必然有回合;两队在联赛第二次相遇,证明再次交手不等于次回合。测试记录需要同时给出原词、规则上下文、期望字段和拒绝原因。若编辑只能说出答案却无法指出规则句,测试仍判未通过。页面面包屑和筛选器也应分开传递stage_id、round_id与leg_id,避免分析页虽然存对了,链接参数却重新混合。终检把同一段规则交给三名互不看答案的编辑,三人只提交字段判断与证据位置,再定位分歧来自术语表还是原文歧义。反例集另含补赛改变日期顺序、第二次交手但非两回合赛、中立场、重赛和只有round_text的旧记录。旧资料迁移时保留原文本与定义版本,不能用新枚举覆盖当时语义。
- 字段卡并列原文和规范值
- 规则缺失明确UNKNOWN
- 每个候选可反查规则句,接口、移动端、排序与导出中的stage、round、leg均未被压成通用位置值


