MySQL数据库表的更好方法

MySQL数据库表的更好方法,mysql,Mysql,我有一个用户表,其中包含有关用户的数据,例如: 我需要为每个用户添加更多的数据,例如'Location'和Balance,这些数据将包含用户的位置信息和余额信息 我的问题: 以下哪项是更好的方法: A) 我创建了两个关系表Location和Balance,每个表都与users.ID有关系 B) 我在users表中添加了两列 注:目前每个用户将有一个位置和一个余额金额,但未来每个用户可能有多个位置,那么在这个场景中哪一个是更好的方法 数据库结构应基于数据的使用方式。你没有给出任何关于你如何处理数

我有一个
用户表
,其中包含有关用户的数据,例如:

我需要为每个用户添加更多的数据,例如'Location'Balance,这些数据将包含用户的位置信息和余额信息

我的问题:

以下哪项是更好的方法:

A) 我创建了两个关系表Location和Balance,每个表都与users.ID有关系

B) 我在users表中添加了两列


注:目前每个用户将有一个位置和一个余额金额,但未来每个用户可能有多个位置,那么在这个场景中哪一个是更好的方法

数据库结构应基于数据的使用方式。你没有给出任何关于你如何处理数据的指示,因此很难给出任何建议。旁注:最好存储出生日期,而不是年龄。出生日期保持不变,年龄不变,但可以通过出生日期来计算。这取决于数据的增长方式。如果这就是所有的数据,并且整组列都是给定ID的唯一值,那么只需将它们作为列添加到现有表中即可。双表的想法(我假设是您试图规范化数据)只有在每个ID可以有多个数据并且您不想在行中为彼此的一组值重复该数据时才开始起作用。如果数据中从未发生过这种情况,那么规范化的好处可能就不适用了。在一定限度内,行数也会影响连续移动数据的扫描时间(但希望通过索引来减轻这种影响)。添加两列小数据类型可能无关紧要,除非数据非常庞大,而且查询的投影性很奇怪。因此,如果您认为大小问题最终会起作用,那么您应该在问题中添加有关此问题的详细信息。例如,是否会有一个新的列,例如“昵称”,每个ID可以有多个值?如果可能的话,您需要允许一个规范化的单独表,它可以轻松地将所需昵称连接到记录的其余部分,而不必每个昵称重复原始行一次。但如果这样的列永远不会出现,那么一个表就可以了。但是,如果这不是为了家庭作业,我建议您偏向于相信可能需要添加任何奇怪的新数据,并使结构足够一般。