Как правильно работать со странами и городами в своем проекте?
Есть свой проектик и я решил поработать со странами и городами.
1) Как записывать идентификаторы городов и стран ?
В таблице пользователей есть поле city и country, к примеру при регистрации я подключил сервис, который определяет город и страну, ну можно подключить geoip или что-то такое, это не важно. Проблема состоит вот в чем:
К примеру меня определяет как: RU, Moscow. Тоесть если так и записать в базу с одной стороны удобно, можно без проблем достать флаг по идентификатору страны, с другой стороны если давать возможность редактировать профиль и пользователь может ввести к примеру Говноукраина вместа UA или Россия вместо RU и уже будут расхождения в данных.
2) Вопрос номер два, по поводу базы стран и городов. Натыкался на такую вещь, ну скажем будет не плохо определять страну и давать выпадающий список стран и городов для выбора, но с другой стороны как подружить сервис определения локации с идентификаторами базы.
3) А если сайт мультиязычный ? это нужно забивать на переводы или держать несколько баз? Или название каждой страны и города держать на соответствующем языке?
В общем подскажите пожалуйста как реализовывать и работать со странами и городами на сайте ?
1)Как записывать идентификаторы городов и стран ?
2 таблицы. Таблица городов (ид,город), таблица стран(ид,страна)
2) Вопрос номер два, по поводу базы стран и городов.
Спарсить у того сервиса где вы определяете локацию.
3) А если сайт мультиязычный ?
Возвращаясь к первому вопросу, добавляем 3 колонку с переводом.
Как у Вас все просто. Это нужно перевести всего то около 2миллионов городов, а если сервис не предоставляет города и страны, а только определяет их. Тогда нужно переделывать id у гигантских баз ?
Как вы все усложняете @nepster09
Если вам нужны все города на планете земля, значит вы создаете действительно стоящий сервис, но ваш вопрос это не подразумевает. Значит очередной сайтик, где столько городов не нужно. Если сервис не предоставляет города и страны, значит берете базу Ип и суете в ваш сервис, трудно ? тяжело ? 5 минут скрипт написать, столько же что бы найти базу ип. 10 минут много ? 2 миллиона гигантская база ?
можно попробовать взять готовые базы, типа geonames
там можно прикручивать мультиязычность довольно легко (она даже есть на базовом уровне), есть координаты объектов, иерархия регионов и все-такое - проще "подружить" с геолокацией пользователей.
если вам нужно сделать привязку к стране по RU, FR, UA итд, знаичт определяете по какому стандарту отдает данные сервис (вики в помощь) - и делаете дополнительную колонку в таблице country - isoXXX, isoYYY, standartZZZ. Получая данные ищете соответствие по необходимой колонке.
Если сайт мультиязычный, то переводите только названия стран.