Проблема со стркутурой БД: городами, районами, поселками

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
Есть три таблицы: страна, регионы (область, край), города.
Есть адреса, где указан еще один параметр, например:
- Россия, Крым, г. Судак, пгт Новый Свет
т.е. есть город, у него поселок. Либо есть адреса, где указан район Крыма, поселок.
Как это учесть, не могу придумать?
 
Есть три таблицы: страна, регионы (область, край), города.
Есть адреса, где указан еще один параметр, например:
- Россия, Крым, г. Судак, пгт Новый Свет
т.е. есть город, у него поселок. Либо есть адреса, где указан район Крыма, поселок.
Как это учесть, не могу придумать?
Ну наверное все таки с точки зрения нормализации надо делать четвертую таблицу, связанную с таблицей городов по CITY_ID. Иначе просто логика вложенности сущностей нарушается, по моему мнению
 
Ну наверное все таки с точки зрения нормализации надо делать четвертую таблицу, связанную с таблицей городов по CITY_ID. Иначе просто логика вложенности сущностей нарушается, по моему мнению
и как ее заполнять, если нет района, как будет связываться город с регионом?
 
и как ее заполнять, если нет района, как будет связываться город с регионом?
Как и все остальные — города, страны, регионы связываются между собой.
Допустим, в каждой таблице есть id, и это ключ/автоинкремент
А между собой таблицы свяжутся, если сделать ключ родителя в каждой подчинённой, например parent_id
Потом связать всё, применив третью нормальную форму.
Но вот имхо «пгт» в Вашем случае не относится к Городу. Это поселок городского типа и должен относиться к области, округу, но не к городу.
Я бы не запаривался и сделал бы поле «Дополнительно» или как там требует интерфейс для подобных случаев.
Или сделать вместо «город» — «населенный пункт». Так даже правильнее.
Можно пользователям предлагать выбор, или заполнять форму самим, тогда в поле «населенный пункт» будет «городской округ Судак, пгт Новый свет»
 
Последнее редактирование:
Как и все остальные — города, страны, регионы связываются между собой.
Допустим, в каждой таблице есть id, и это ключ/автоинкремент
А между собой таблицы свяжутся, если сделать ключ родителя в каждой подчинённой, например parent_id
Потом связать всё, применив третью нормальную форму.
Но вот имхо «пгт» в Вашем случае не относится к Городу. Это поселок городского типа и должен относиться к области, округу, но не к городу.
Я бы не запаривался и сделал бы поле «Дополнительно» или как там требует интерфейс для подобных случаев.
Или сделать вместо «город» — «населенный пункт». Так даже правильнее.
Можно пользователям предлагать выбор, или заполнять форму самим, тогда в поле «населенный пункт» будет «городской округ Судак, пгт Новый свет»
Есть адреса, когда пгт не упоминается, а просто город и улица. А есть, где без указания поселка яндекс находит совсем не то, что нужно в пределах того же крыма.
Т.е. в городе могут быть поселки.
А как у яндекса это дело устроено, кто-нибудь знает?
 
Адресация это та еще жесть, там где я сейчас живу может быть до 9 различных объектов в полном адресе и похоже это не предел...
Как вариант это можно попробовать хранить в таблице типа категорий:
- id
- уровень вложенности
- тип (... город, район, пгт, улица, дом ...)
- поле горизонтальной связи по id с таким же уровнем вложенности, но другим типом - старое или альтернативное название

Хотя с учетом того что Крым, г. Судак, пгт Новый Свет это сейчас одновременно Для просмотра ссылки Войди или Зарегистрируйся имеет смысл две таблицы делать:
1) id - name
2) вертикальные и горизонтальные связи между id, тип
 
Как вариант это можно попробовать хранить в таблице типа категорий:
- id
- уровень вложенности
- тип (... город, район, пгт, улица, дом ...)
- поле горизонтальной связи по id с таким же уровнем вложенности, но другим типом - старое или альтернативное название
Со всем уважением, latteo, но нефига не понял :)
 
Да возьмите и посмотрите, как предлагают заполнить адрес компании с миллионами посетителей, и сделайте по аналогии.
У них же всё доставляется почтой без проблем, и у Вас будет;)
98922931.jpg
 
Зачем что то выдумывать, когда есть официально структурированная база
Для просмотра ссылки Войди или Зарегистрируйся
Вот и делай на ее основе
 
Зачем что то выдумывать, когда есть официально структурированная база
Для просмотра ссылки Войди или Зарегистрируйся
Вот и делай на ее основе
Проблема по большому счету в реализации структуры. И нужно учесть, что объекты могут быть и не из России. А там может быть другая структура.
 
Назад
Сверху