【发布时间】:2011-06-19 12:00:48
【问题描述】:
我有一个 CSV,其中包含一些如下所示的数据:
A0A0A0,48.5674500000,-54.8432250000,Gander,NL
A0A1A0,47.0073470000,-52.9589210000,Aquaforte,NL
A0A1B0,47.3622800000,-53.2939930000,Avondale,NL
但是我的数据库是标准化的,因此 Cities 和 Provinces 位于单独的表中,每个表都有自己的 ID 列。
那么,将这个文件导入 3 个单独的表并正确链接外键的最简单方法是什么?
为了更清楚,表格是
cities (id, name, province_id)
provinces (id, code, name, country_id)
postal_codes (id, code, city_id)
countries (id, code, name)
【问题讨论】:
-
你是说城市全名的两个相关部分在两个不同的表中?我的意思是,“甘德”在一张桌子上,而“NL”在另一张桌子上?我不认为这在美国是可行的。有“阿拉巴马州富兰克林”、“俄亥俄州富兰克林”、“阿肯色州富兰克林”——这里至少有 30 个富兰克林。 (同样重要的是,没有“富兰克林,密西西比州”。)
-
@Catcall:不......邮政编码表有一个城市的 FK。城市表包含名称和到省的FK,而省又指向国家。即,您可以在不同的州/省拥有重复的城市名称。
标签: postgresql csv import