我是初出茅庐的军事历史网站上的单人开发团队。该网站的一个方面是约1,200个个人战斗的目录,其中包括参与其中的国家&编队(团,部队等)。字符串分类策略
地形信息(以及其他战斗信息)是由一个由10人志愿者团队从一系列书籍中手动导入的。编队以不同的格式和缩写模式列出。当我设置数据收集表单时,我无法想到处理这些数据的好方法......并选择将其全部存储为MySQL数据库中的字符串,并在稍后将其整理出来。
那么,“以后” - 因为它往往会发生 - 已经到来。 :-)
每场战斗在数据库中有2个记录 - 每个参与国家都有一个记录。每个记录都有一个编队文本字符串,列出志愿者选择添加它们时存在的编队。
一些真实的例子:
- 39掷弹Rgmt,第26届国民掷弹兵师
- 第二空军场部,第246步兵师
- 第247步兵师,第255坦克旅
- 第二空军场部, SS骑兵师
- 第28坦克旅第158步枪师第135步枪师第81坦克旅第242坦克旅
- 第78步兵师
- 第三吴特别海军登陆部队,图拉吉水上飞机基地人员
- 第1营第505步兵团
的最终目标是为每个单独的力量有一个ID,以便其参加可以追踪整个战斗数据库。地层层次结构,如上面的最后一项1st Battalion (of the) 505th Infantry Regiment
也需要保留。在这种情况下,1st Battalion
和505th Infantry Regiment
将被拆分,但1st Battalion
将被标记为属于505th.
在数据库方面,我想我想拉形成场走出目前的战斗信息表,并创建三个新表格:
FORMATION
[id] [name]
FORMATION_HIERARCHY
[id] [parent] [child]
FORMATION_BATTLE
[f_id] [battle_id]
这很容易解释,但很难制定。
我从SO社区寻找的东西只是关于如何最好地解决这个问题的一些提示。理想情况下,有一些方法可以解决这个问题,我不知道。然而,作为最后的手段,我总是可以编写一个分类框架,并叫我回来的志愿者通过2,500+记录进行排序...
谢谢symcbean。我已经删除了PHP标签。那篇文章非常有帮助,会给我一个好的开始。无论我以何种方式解决问题,似乎我在我面前都做了很多工作。我打算把这个问题再开放24小时。如果没有人能够回答你的答案(我认为不太可能),那是你的答案。 :-) – Drew 2010-05-26 01:19:04