用公开资料查一门旧炮的配用弹种,先卡在命名上

前阵子想把手头一个二战火炮的小资料库补全,卡在弹种这一列。场景很小:一门 75mm 级别的旧炮,公开资料来自几个不同语种的百科条目、两本回忆录的转述,还有一份影印的弹药手册残页。数据量不大,几十条记录,但同一发炮弹在不同来源里出现了四种写法。

我的做法是先不急着归一,而是把每条记录的原始写法、来源语种、出处类型都保留下来,单独建一张对照表:

CREATE TABLE ammo_alias (
  raw_name   TEXT,      -- 原样抄下来,不改
  lang       TEXT,      -- 来源语种
  source_kind TEXT,     -- 手册/百科/回忆录
  shell_type TEXT,      -- 先留空
  note       TEXT
);

然后按「口径 + 弹体功能」两个维度去猜 shell_type,猜不出来的就留空。比如带 “AP” 字样的先归穿甲类,带 “HE” 的归榴弹,剩下那些带国别前缀的缩写一律不猜。归一之后再用一条视图把主表和对照表连起来,主表只存 shell_type 和指向 raw_name 的外键。

这样做的好处是错了我能回溯到原文,而不是对着一个自己翻译出来的词猜来源。代价也很直接:查询要多一次 join,而且 shell_type 里会有一批空值,统计「某炮配了几种弹」时得先把空值剔掉,否则数字虚高。

失效的地方在跨语种缩写。有些缩写在不同国家指的不是一回事,我一开始按字面把两个来源合并成一条,后来发现其中一个其实指的是训练弹,只能拆回去。还有回忆录里的口语叫法,和老手册的正式命名对不上,这类我最后统一标成「待核」,不硬塞进任何一类。

SELECT shell_type, COUNT(*) FROM ammo_main
WHERE shell_type IS NOT NULL
GROUP BY shell_type;

现在资料库里还有十几条挂着「待核」。想问问做类似整理的人:遇到只有口语叫法、没有手册对应的弹种,你们是单独开一类,还是干脆不录?

0
赞同度 100% · 0 条评论 · 2 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。