2010-01-12 32 views
1

我一直在努力保存/加载,并且我发现我必须加载/保存很多表,因为我将表分成不同的类别。字符,character_appearance,character_preferences,character_session等(我使用LEFT JOIN子句加载)MySQL - 多表与单表

如果我只是把所有的列放到一个表中,而不是将它拆分成多个表,会更好吗?

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

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

回答

6

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

我会想象一个角色可以有多个首选项,在这种情况下,您将需要创建一个特殊首选项表。关于会话呢?每个字符或多个字符?问题是会话实际上依赖于什么?角色ID或别的东西?

也许一个角色在不同的时间可以有几个会话。如果是这种情况,那么会话不依赖于角色的主键,而是依赖于时间以及角色的主键。在这种情况下,它不属于字符表格,而是属于表格。

+0

会话表包含当前/最后一个会话密钥,最后一个ip,最后一次登录日期和其他事情(例如在线花费的小时数),当前连接时间(自从登录后角色已联机多长时间)等差异值,等 外观表也有多个列,如头部,躯干,腿,脚,手,手臂,头发,胡子,颜色等。 – TheAJ 2010-01-12 02:30:11

+0

多列不是问题。头,躯干,腿,脚,手,手臂,头发,胡子,颜色都直接取决于角色吗?如果是这样,他们属于角色表,如果不是,他们属于他们所依赖的东西。与会话相同的东西等 – 2010-01-12 02:34:12

2

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