nepster-web
@nepster-web

Как правильно работать со странами и городами в своем проекте?

Есть свой проектик и я решил поработать со странами и городами.

1) Как записывать идентификаторы городов и стран ?
В таблице пользователей есть поле city и country, к примеру при регистрации я подключил сервис, который определяет город и страну, ну можно подключить geoip или что-то такое, это не важно. Проблема состоит вот в чем:
К примеру меня определяет как: RU, Moscow. Тоесть если так и записать в базу с одной стороны удобно, можно без проблем достать флаг по идентификатору страны, с другой стороны если давать возможность редактировать профиль и пользователь может ввести к примеру Говноукраина вместа UA или Россия вместо RU и уже будут расхождения в данных.

2) Вопрос номер два, по поводу базы стран и городов. Натыкался на такую вещь, ну скажем будет не плохо определять страну и давать выпадающий список стран и городов для выбора, но с другой стороны как подружить сервис определения локации с идентификаторами базы.

3) А если сайт мультиязычный ? это нужно забивать на переводы или держать несколько баз? Или название каждой страны и города держать на соответствующем языке?

В общем подскажите пожалуйста как реализовывать и работать со странами и городами на сайте ?
  • Вопрос задан
  • 2512 просмотров
Пригласить эксперта
Ответы на вопрос 3
@whats
1)Как записывать идентификаторы городов и стран ?
2 таблицы. Таблица городов (ид,город), таблица стран(ид,страна)
2) Вопрос номер два, по поводу базы стран и городов.
Спарсить у того сервиса где вы определяете локацию.
3) А если сайт мультиязычный ?
Возвращаясь к первому вопросу, добавляем 3 колонку с переводом.
Ответ написан
jakulov
@jakulov
можно попробовать взять готовые базы, типа geonames
там можно прикручивать мультиязычность довольно легко (она даже есть на базовом уровне), есть координаты объектов, иерархия регионов и все-такое - проще "подружить" с геолокацией пользователей.
Ответ написан
Комментировать
если вам нужно сделать привязку к стране по RU, FR, UA итд, знаичт определяете по какому стандарту отдает данные сервис (вики в помощь) - и делаете дополнительную колонку в таблице country - isoXXX, isoYYY, standartZZZ. Получая данные ищете соответствие по необходимой колонке.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы