MySql多个表或一个大表


MySql multiple tables or one big table?

我目前正在制作一个代理CMS,想了解用户的详细信息。因此,登记表分为两组,摄影师和模特。模特可以选择关于自己体型的选项,如头发颜色、头发长度、身高等,但摄影师不需要这些选项。

我的问题是,维奇更有效?把所有东西都放在一张大桌子里,或者把身体分开。

示例

users_table <--- contains everything

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

如果有人能给我一些关于这方面的信息,会很高兴

谢谢大家

根据您的描述,我绝对建议使用第二种方法——拆分数据。

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

关于零点效应,你可以在这里看到,例如

决定哪种效率更高的最重要的事情是你只需要多少摄影师或模特。对我来说,很明显,这可能经常发生——正因为如此,使用拆分表会更好。

如果您将满足某些更改需求,那么只为一个表更改它将更容易维护(例如,如果将添加一些新的Model特性)。

考虑未来的标准化

使用拆分的表,如果您只想检索其中的数据,您可以轻松地运行一个表。如果你的大表有很多数据,那么检索的时间就太多了。如果将表映射到对象,最好有一个小对象。你也可以重复使用它。。。。如果您真的想要一个表(视图是一个透明的动态表),也许您可以使用视图

好的方法是单独的表。一个表显示常见详细信息(用户)(登录名、密码等)第二个表用于模型(users_models),第三个表用于摄影师(users_photo)

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