nepster-web
@nepster-web

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

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

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

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

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

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

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

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

Похожие вопросы