在父-子表中拆分表以避免MySQL中重复信息的最佳方法

在父-子表中拆分表以避免MySQL中重复信息的最佳方法,mysql,Mysql,在mysql中拆分位置表最简单的方法是什么 当前表格包括: 国家代码、国家名称、州代码、州名称、城市代码、城市名称 我想把它分成三张桌子 国家/地区表父项:国家/地区代码、国家/地区名称 状态表子父项:国家/地区代码、国家/地区代码、国家/地区名称 城市表子项:州代码、城市代码、城市名称 在分别创建每个表及其外键之后,是否可以使用简单的查询来完成此操作 谢谢,您的结构将尽可能规范化。在城市表中使用外键表示国家代码,在国家/地区表中使用外键表示国家/地区代码 当您查询表时,我们将根据需要在表之间创

在mysql中拆分位置表最简单的方法是什么

当前表格包括: 国家代码、国家名称、州代码、州名称、城市代码、城市名称

我想把它分成三张桌子

国家/地区表父项:国家/地区代码、国家/地区名称

状态表子父项:国家/地区代码、国家/地区代码、国家/地区名称

城市表子项:州代码、城市代码、城市名称

在分别创建每个表及其外键之后,是否可以使用简单的查询来完成此操作


谢谢,

您的结构将尽可能规范化。在城市表中使用外键表示国家代码,在国家/地区表中使用外键表示国家/地区代码

当您查询表时,我们将根据需要在表之间创建一个内部联接,以从state和country获取数据


要从现有表中填充,请循环浏览该表,并将唯一的国家/地区插入到新的国家/地区表中,然后是唯一的州,最后是城市的第三个查询。

是的,您需要运行3个查询。首先创建表,然后按照这些行做3次。只需确保运行SELECT only以查看正在添加的数据

INSERT INTO new_table (country_code, Country_name)
SELECT country_code, Country_name
FROM old_table
GROUP BY country_code;