我有一个管理字符的数据库,我想添加一些更改:
现在:
一个characater有多个设备,一个设备属于多个字符。
如果我们知道角色和设备,我们就可以知道角色设备的一面,所以我放了" side"在枢轴上。问题是:侧面只涉及响铃,因此我的数据侧面看起来像
null | null | null | left | null | right | null |null | null | null
只有一种类型的属性才有问题吗?
另外,我想添加一个stat元素。问题是,对于30个统计数据,只有2个与元素有关。对于元素关注的统计,角色选择一个或多个元素。它可能看起来像这样:
目前,我按照以下方式管理统计数据:
我使用他的装备检索角色的所有数据,然后当我知道他的装备时,我可以检索所有统计数据(我知道他们的价值通过" value_stat")。感谢Laravel,我用热切的负载来做。
现在拥有" value_stat"我必须知道id_character,id_equipement,id_stats,id_element,因为所选元素取决于字符。这种模式是否正确?即使在大多数情况下使用该模式,id_element也将设置为null,因为element仅适用于某些统计信息。
谢谢!
答案 0 :(得分:1)
只有一种类型的属性是否有问题?
Reworded:"是否可以为一个行子集提供非NULL的属性?
答案:是的。这在SQL数据库中很常见。您只需确保您的应用程序正确处理NULL值。
现在拥有" value_stat"我必须知道id_character,id_equipement,id_stats,id_element,因为所选元素取决于字符。这种模式是否正确?
答:这取决于实际物体模型是否正确!例如,设备和 stat 之间的关系真的是多对多的吗?我的意思是 - 一个统计记录真的可以参考许多不同的设备吗?如果是这样,没问题。从SQL的角度来看,使用任意复杂的关系模型并没有什么不好。但从标准化的角度来看,它必须与现实世界相匹配(在这种情况下:游戏逻辑)。