powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / нужна помощь с улицами и районами
11 сообщений из 11, страница 1 из 1
нужна помощь с улицами и районами
    #37934483
TigerZaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех!
делаю БД для проекта по недвижимости, столкнулся со следующим. Одна улица может проходить через 1-3 района в городе. Помимо этого, примкнувшие поселки, теперь расположены в районах города, и в них также встречаются повторы улиц. Плюс, в городе есть микрорайоны, в которых улица будет проходить. Помогите правильно построить логику
сначала делал так:
city (id_city, name)
area (id_area, name, id_city) районы
mkr_area (id_mkr, name, id_area) микрорайоны
street (id, name, id_area, id_mkr, id_city)

примерно следующее может получиться:

ул. 9 января - коминтерновский р-н
ул. 9 января - ленинский р-н
ул. 9 января - советский р-н
ул. 9 января - микрорайон "Масловка" левобережного р-на
и например, в коминтерновском р-не, есть микрорайон "дубки", в котором эта улица имеется.
При поиске недвижимости, юзер может искать как глобально по району, так и по микрорайонам.

В БД получаются дубли, они конечно "разные", но как правильно их разграничить, особенно для поиска.
И насколько грамотно хранить id через запятую?

Надеюсь объяснил понятно, спасибо!
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37934529
PostX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TigerZaka, В районе всегда есть микрорайоны?
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37934538
IT-Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TigerZakaПриветствую всех!
делаю БД для проекта по недвижимости, столкнулся со следующим. Одна улица может проходить через 1-3 района в городе. Помимо этого, примкнувшие поселки, теперь расположены в районах города, и в них также встречаются повторы улиц. Плюс, в городе есть микрорайоны, в которых улица будет проходить. Помогите правильно построить логику
сначала делал так:
city (id_city, name)
area (id_area, name, id_city) районы
mkr_area (id_mkr, name, id_area) микрорайоны
street (id, name, id_area, id_mkr, id_city)

улицы могут проходить через несколько микрорайнов. Поэтому в таблицу улиц не надо добавлять поле id_mkr. А сделать таблицу-связь улицы-мкр-н (многие-ко многим) и еще можно таблицу связь - улица-район.
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37934542
IT-Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TigerZakaИ насколько грамотно хранить id через запятую?


ну если в теории - то это не соответствует первой нормальной форме.
а на практике: поиск будет дольше работать, чем с таблицей-связью.
Таблицу-связь можно проиндексировать по id, а несколько id в одной строке придется обрабатывать через like
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37934557
IT-Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TigerZakaПриветствую всех!
делаю БД для проекта по недвижимости, столкнулся со следующим. Одна улица может проходить через 1-3 района в городе. Помимо этого, примкнувшие поселки, теперь расположены в районах города, и в них также встречаются повторы улиц. Плюс, в городе есть микрорайоны, в которых улица будет проходить. Помогите правильно построить логику

А можно сделать всего 2 таблицы:
местоположение (location): loc_id, loc_name, loc_type (тип: улица, город, район, микрор-н)
связь местоположений: loc_id_1, loc_id_2, relation_type (тип связи: принадлежит, проходит, пересекает и пр.)

если нужно для разных типов местоположений задавать специфичные атрибуты, то можно пойти по принципу наследования:
например таблица улиц с полями street_id (=loc_id )и, например, длина улицы.

Плюсы: легко добавлять новые типы без изменения структуры: поселки, округа и прочее... легко искать по названию среды разных типов.
Минус: немного сложнее организовать интерфейс редактирования...
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37934832
TigerZaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PostXTigerZaka, В районе всегда есть микрорайоны?
да
IT-Shaman , спасибо за столь развернутый ответ ))
только проснулся, сел осмыслять
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37935068
PostX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TigerZakaPostXTigerZaka, В районе всегда есть микрорайоны?
да
IT-Shaman , спасибо за столь развернутый ответ ))
только проснулся, сел осмыслять

Ну тогда не нужно связывать улицы с районами, просто с одними микрорайонами, а потом уже по микрорайонам можно узнать по каким районам проходит улица. ИМХО
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37935169
PostX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TigerZaka,

city (id_city, name)
mkr_area (id_mkr, name, id_area) микрорайоны
area (id_area, name, id_city) районы
street (id, name, id_city)
join_str_area(id_str, id_mkr)

В таком случае улицам можно будет добавлять доп. атрибуты (длина, наличие асфальта и т.д.). Вдруг придется. ИМХО
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37935196
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TigerZaka,

Откройте для себя КЛАДР. Погуглите, если непоняли о чем. И ненужно изобретать велосипед, он уже давно изобретен.
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37935749
Фотография Болтун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или ФИАС
...
Рейтинг: 0 / 0
нужна помощь с улицами и районами
    #37938031
TigerZaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы. теперь есть варианты ))
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / нужна помощь с улицами и районами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]