База стран и городов мира

В формате SQL.

Общая информация

Иногда бывает нужно в проект добавить базу стран и городов мира, чтобы пользователь мог выбрать своё место жительства.

Если база будет неполной, придётся разрешить пользователям вводить названия городов вручную, а это нежелательно, потому что пользователям свойственно ошибаться. В результате таких ошибок в базе появляется куча дубликатов, отличающихся буквально в одном символе (например, Железногорск-Илимский и Железногорск-Ильимский).

Подобное безобразие можно увидеть во многих социальных сетях.

В общем, нужна более-менее полная база стран и городов мира.

Однажды подобная задача встала и передо мной. Вы можете скачать базу стран, регионов и городов с моего сайта.

Скачать файл Скачать базу стран и городов
SQL-файл в архиве RAR, 77 кбайт.

106 стран, 905 регионов (областей, краёв), 10814 городов. 99% на русском языке.

Формат базы

База представляет собой заархивированный файл с набором SQL-инструкций для PostgreSQL. В базе используется три таблицы.

Таблица стран (countries)

country_id   SMALLINT  PRIMARY KEY
title        VARCHAR

Таблица регионов (regions)

region_id    SMALLINT  PRIMARY KEY
country_id   SMALLINT  FOREIGN KEY
title        VARCHAR

Таблица городов (cities)

city_id      SMALLINT  PRIMARY KEY
region_id    SMALLINT  FOREIGN KEY
country_id   SMALLINT  FOREIGN KEY
title        VARCHAR

Замечания

Если нужно импортировать записи в СУБД отличную от PostgreSQL, создайте в своей базе данных такую же структуру, а затем выполните все INSERT-запросы из файла.

Дублирование поля country_id в таблице citites мне было необходимо. Вы можете удалить его, если хотите сэкономить немного свободного места.

Индексы в таблицах создавайте самостоятельно в соответствии со своими потребностями.

Прочее

Эта база данных не претендует на полноту, поэтому, если вы не обнаружили своего города, напишите мне.

Также прошу связаться со мной, если вы обнаружили в базе ошибки.

Связаться со мной можно с помощью контактной информации, опубликованной на главной странице моего сайта.

Заранее большое спасибо.