Схема базы данных - представляющая местоположение

Мне нужно представить местоположение некоторых событий, и я разрабатываю схему базы данных для этого приложения. У меня есть два подхода к представлению местоположения:

подход 1: 4 таблицы:

  • Страны
  • Штаты
  • Города
  • Местоположение (в местоположении у меня есть внешний ключ для country_id, state_id и city_id)

подход 2: 1 таблица:

  • Местоположения и там просто поля страна, штат, город, которые хранятся в виде текста (без чужих идентификаторов)

Какой подход вы порекомендуете? первый поможет исключить возможные разные имена, например в той же стране (США, США, США и т. д.) и может быть полезен в предоставлении предложений при написании текста в текстовых полях, что, вероятно, будет обязательным.

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

Как вы думаете, какой из них лучше? Вы знаете, каковы лучшие практики в этом случае? Например. как он сделал некоторые большие порталы, где им также нужно что-то вроде местоположения (например, Foursquare и т. д.). Afaik facebook использует второй подход, но ... Я хочу услышать ваше мнение и, возможно, причины, по которым вы предпочли бы один подход другому.

Спасибо!

19
задан Book Of Zeus 18 December 2011 в 18:07
поделиться