我是一个刚刚起步的军事历史网站上的单人开发团队。该网站的一个方面是大约 1,200 场个人战斗的目录,包括参加的国家和编队(团、师等)。
编队信息(以及其他战斗信息)是由一个 10 人的志愿者团队从一系列书籍中手动导入的。这些编队以不同的格式和缩写模式分组列出。在我设置数据收集表单的时候,我想不出处理这些数据的好方法......并选择将它们全部作为字符串存储在 MySQL 数据库中,然后再进行整理。
好吧,“稍后”——因为它往往会发生——已经到来。:-)
每场战斗在数据库中都有 2 条以上的记录 - 每个参与的国家都有一条。每条记录都有一个编队文本字符串,列出了志愿者选择添加时出现的编队。
一些真实的例子:
- 第 39 掷弹兵团,第 26 人民掷弹兵师
- 德国空军第 2 野战师,第 246 步兵师
- 第247步兵师,第255坦克旅
- 德国空军第 2 野战师,党卫军骑兵师
- 第28坦克旅、第158步兵师、第135步兵师、第81坦克旅、第242坦克旅
- 第78步兵师
- 第 3 吴特种海军登陆部队,图拉吉水上飞机基地人员
- 第 505 步兵团第 1 营
最终目标是让每一个单独的部队都有一个ID,这样就可以在整个战斗数据库中追踪其参与。形成层次结构,例如上面的最后一项1st Battalion (of the) 505th Infantry Regiment
也需要保留。在这种情况下,1st Battalion
and505th Infantry Regiment
将被拆分,但1st Battalion
会被标记为属于505th.
在数据库方面,我想我想从当前的战斗信息表中拉出阵型字段并创建三个新表:
FORMATION
[id] [name]
FORMATION_HIERARCHY
[id] [parent] [child]
FORMATION_BATTLE
[f_id] [battle_id]
解释起来很简单,但实施起来却很复杂。
我从 SO 社区中寻找的只是一些关于如何最好地解决这个问题的提示。理想情况下,有某种我不知道的方法可以解决这个问题。然而,作为最后的手段,我总是可以编写一个分类框架并叫我的志愿者回来对 2,500 多条记录进行分类......