我有5张桌子。 table1
,table2
,table3
,table4
和table5
。
所有这些表都以相同的方式编制索引,例如,对于名称john75de
,table1
包含个人详细信息
table2
包含他的技能,table3
包含专业经验,table4
包含资格,table5
包含其他资格。
这些表从一开始就存在,但我认为我需要将所有数据合并到一个表中,因为这5个表都使用相同的索引引用。所有这些表格中都有500k名称和详细信息。
名称或任何数据之间没有其他交叉关系。所以你怎么看。我需要合并吗?如果是,我该怎么办?由于与一个名称相关的所有数据都在一行中,我希望这会更容易。哦,是的,名字是独一无二的。
答案 0 :(得分:2)
合并这些表听起来不错。一个人可以拥有多个地址,多种技能,多个以前的工作和多种资格。要对此进行建模,您需要一对多关系,最好使用单独的表。
如果“资格”和“附加资格”具有相同的结构,我可能会试图将这两个表合并为一个表。为此,您可以从一个表中选择所有行并将它们插入另一个表中,然后删除不需要的表。如果您需要区分这两种类型的资格,您可以为其添加一列。下面是一些用于将数据从一个表复制到另一个表的示例SQL:
INSERT INTO qualifications (col1, col2, ... coln, is_additional)
SELECT col1, col2, ... coln, 1
FROM addtional_qualifications
如果两个表中的AUTO_INCREMENT PRIMARY KEY列具有相同的值,并且其他表通过外键约束引用这些值,则合并两个表可能会很棘手。