合并个别表?

时间:2011-01-29 20:14:05

标签: mysql database rdbms

我有5张桌子。 table1table2table3table4table5

所有这些表都以相同的方式编制索引,例如,对于名称john75detable1包含个人详细信息 table2包含他的技能,table3包含专业经验,table4包含资格,table5包含其他资格。

这些表从一开始就存在,但我认为我需要将所有数据合并到一个表中,因为这5个表都使用相同的索引引用。所有这些表格中都有500k名称和详细信息。

名称或任何数据之间没有其他交叉关系。所以你怎么看。我需要合并吗?如果是,我该怎么办?由于与一个名称相关的所有数据都在一行中,我希望这会更容易。哦,是的,名字是独一无二的。

1 个答案:

答案 0 :(得分:2)

合并这些表听起来不错。一个人可以拥有多个地址,多种技能,多个以前的工作和多种资格。要对此进行建模,您需要一对多关系,最好使用单独的表。

如果“资格”和“附加资格”具有相同的结构,我可能会试图将这两个表合并为一个表。为此,您可以从一个表中选择所有行并将它们插入另一个表中,然后删除不需要的表。如果您需要区分这两种类型的资格,您可以为其添加一列。下面是一些用于将数据从一个表复制到另一个表的示例SQL:

INSERT INTO qualifications (col1, col2, ... coln, is_additional)
SELECT col1, col2, ... coln, 1
FROM addtional_qualifications

如果两个表中的AUTO_INCREMENT PRIMARY KEY列具有相同的值,并且其他表通过外键约束引用这些值,则合并两个表可能会很棘手。