我有以下表格:
球员
- ID
- 选手姓名
武器
- ID
- 类型
- 其他数据
武器对玩家
- ID
- 玩家ID_reference
- 武器ID_reference
那很好也很简单。
现在我需要根据之前刚刚打包到otherData列中的一些特性从Weapons表中选择项目(因为它只在客户端需要)。问题是,这些类型具有不同的特征——但也有很多相似的数据。
所以我试图决定以下可能性,所有这些都有其优点和缺点。
解决方案 A
杀死 Weapons 表,并为每个 Weapon-Type 创建一个新表:
武器_剑
- ID
- 刀片类型
- 损害
- 其他数据
武器_枪支
- ID
- 准确性
- 损害
- 弹药类型
- 其他数据
但是我将如何将这些链接到播放器?
- 为每种武器类型创建Weapons_Swords2Players、Weapons_Guns2Players ?(在为玩家加载所有武器时会导致更多的加入......并且插入新玩家也更复杂)
或者
- 将另一列添加到名为WeaponsTypeTable的Weapons2Players中,然后对正确的 Weapons 子表进行子选择(似乎更容易,但不是很正确,我猜插入稍微容易一些)
解决方案 B
保留武器表,并添加我需要的所有字段。问题是会有NULL字段,因为并非所有武器类型都使用所有字段(不可能是正确的)
武器
- ID
- 类型
- 准确性
- 损害
- 弹药类型
- 刀片类型
- 其他数据
这似乎是非常基本的东西,但我无法决定什么是最好的。还是有正确的解决方案C?