MySql多个表还是一个大表?

时间:2013-07-12 11:02:09

标签: php mysql

我目前正在制作代理商CMS,并想询问有关用户的详细信息。 因此,登记表分为2组,摄影师和模特。 模特可以选择关于身体类型的选项,如头发颜色,头发长度,高度等,但摄影师不需要这些选项。

我的问题是,哪个更有效?将所有东西存放在一张大桌子中或将身体分开。

实施例

users_table <--- contains everything

users_table <--- containing login details and a few basic information
users_body_table <--- containing model body information

如果有人能给我一些关于此的信息会很高兴

谢谢大家

3 个答案:

答案 0 :(得分:3)

根据您的描述,我绝对会建议采用第二种方法 - 分割数据。

您应该注意到,在第一种方法中,您将有大约四分之一的表填充空值。

关于空值效果,您可以看到例如here

决定哪个更高效的最重要的事情是你需要多少才能获得摄影师或只有模特。对我来说很明显,可能经常 - 而且正因为如此,使用拆分表会更好。

也许如果你满足某些变化的需要,维护只更改一个表就更容易(例如,如果添加一些新的模型特征)。

考虑未来normalization

答案 1 :(得分:1)

使用拆分表,如果只想检索数据,可以轻松浏览一个表。 如果您的大表有大量数据,则检索时间过长。如果将表映射到对象,最好有一个小对象。你也可以重复使用....如果你真的想要一个表(视图是一个透明的动态表),也许你可以使用视图

答案 2 :(得分:0)

好方法是单独的表格。 一个表格用于公共细节(用户)(登录,密码等) 模型的第二个表(users_models)和摄影师的第三个表(users_photo)

在表格用户中,您可以从模型和照片表中为商店ID创建2个字段。在这种情况下,一个用户可以是模特或/和摄影师。