MySQL - 多表与单表

时间:2010-01-12 02:09:22

标签: mysql

我一直致力于保存/加载,我发现我必须加载/保存很多表,因为我将表格拆分为多个类别,例如characters,character_appearance,character_preferences,character_session等(我使用LEFT JOIN子句加载)

如果我将所有列放入单个表而不是将其拆分为多个表,会不会更好?

我通常将它们分成多个线程,因为我认为表中会有太多列可能会导致问题。

是否应该使用单个表/多个表格的任何意见?

2 个答案:

答案 0 :(得分:6)

这一切都取决于你的设计。角色是否有多个外观?如果是这样,那么character_appearance将属于它自己的表。但是,如果一个字符只有一个外观,那么它将属于字符表。只要每列实际上直接依赖于主键,表中的列数就不是问题。

我认为角色可以有多个偏好,在这种情况下你需要创建一个特殊的偏好表。会议怎么样?每个字符或多个一个?问题是会话实际上取决于什么?字符ID或其他东西?

也许一个角色可以在不同时间拥有多个会话。如果是这种情况,则会话不依赖于角色的主键,而是依赖于时间和角色的主键。在这种情况下,它不属于字符表,而是属于表格本身。

答案 1 :(得分:2)

多个表:从建模和维护的角度来看,每个域类都有一个表通常更清晰。