Обсуждаем способы задать адресацию

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

Если уж говорить о боте, то наверное сейчас надо заняться ботом, который поймет максимальное количество используемых схем адресации. После этого можно будет какие-то выводы делать о целесообразности причесывания при наличии конфликтов между схемами.

Роль с атрибутами — это отношение. Они уже есть, пользуйтесь на здоровье.

Ясно.
По мне – всё костыльно. И то, и то. Тошнит уже от этих схем)) а чем последняя обсуждаемая схема лучше “старо-предложенного” отношения (с ролью house)? На отношение можно всяко-разно еще навесить, а на роль ничего не навесишь…

ПОчитал тему… почти сошел с ума :slight_smile:

Почта России / Правила оформления почтовых отправлений

Более извращённого варианта я не видел! Порядок то прямой, то обратный.

А, попробуйте забить на этот дебильный пример записи и написать:
Область, район, НП, улица, дом, квартира, ФИО -
Вы не поверите! ДОЙДЁТ!! Вопрос: “по кой” нужно сочинять такие примеры?

“Назло бабушке отморожу уши”. Хехе.

Какая разница как писать адрес на почтовом конверте. Не об этом же речь. Давайте все-же к адресации вернемся.

На самом деле, то, как писать адрес имеет прямое отношение, потому что по адресной информации кому-то придётся писать алгоритм генерации того самого адреса.

Чтобы вернуться, надо знать, куда возвращаться. Для начала надо решить, какую адресацию мы пытаемся задать.

Это дело алгоритма, если придумывать данные под алгоритм, то все проще пареной репы: загонять в данные сразу требуемый результат работы скрипта.

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

Варианты ответа есть?

Что противоречит следующему:

Но есть условие достаточности входной информации. Если информации для генерации представления недостаточно, то никакой алгоритм не выдаст результат. База данных должна содержать всю необходимую информацию, а это уже накладывает ограничения на формат БД.

Грубо говоря, если мы хотим генерить адреса в виде:
квартира-дом, улица, город, кодстраны (или как там у буржуев)
улица, д. дом, кв. квартира, город, страна, индекс (как на сайте)
индекс, город, улица, д. дом, кв. квартира (по старинке)
то генератору надо хотя бы знать что из кусков адреса чем является, чтобы расставить их в нужном порядке, а не просто раскидать оные по уровням отношений.

Грубо говоря между улицей и городом есть районы, а между городом и страной есть еще районы/регионы. Необязательные, но есть.

Фактически, скрипту ничего не надо знать, кроме стартового уровня, включающего дома - улицы/квартала/комплекса. Далее он просто идет по восходящей и собирает имена в строку. Об этом я и говорил с самого начала. Т.е. берем дом, смотрим в какое отношение он включен, и пишем “$имя_отношения$, д.$номер_дома$”, далее смотрим, куда включено наше отношение, и так, пока не дойдем до конца.
Дома могут быть включены более, чем в одно отношение, и это просто обозначает, что для них есть более чем одна адресная строка.

Обратный разбор - от строки к конкретному дому несколько сложнее, но тоже реализуемо. Просто надо будет чуть поработать со строками…

Сейчас это не принципиально, я показываю пример.

Я неспроста привёл аж 3 схемы нумерации, по которым должно быть ясно, что просто по восходящей или нисходящей адрес не соберёшь, точнее соберёшь, но не все варианты. Поэтому знать, какой элемент какой, всё же бывает нужно, хотя бы основные.

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

Привёл немного в порядок мысли по адресации :slight_smile:
Несколько выводов:

  • во-первых, мы тут говорим не о почтовом адресе.
    Почтовый адрес всегда указывает на адресата (кому), без адресата это уже неправильный адрес.
    Мы же тут говорим про адреса объектов. Поэтому на почтовый адрес можно оглядываться, но упираться в него не стоит.

  • во-вторых, я всё-таки настаиваю на разделении адреса на две части - адрес населённого пункта + адрес внутри нас. пункта.
    Объекты вне нас. пунктов, в принципе, тоже можно адресовать: “кафе у 83-го километра трассы XX-YY”, “сарай для сена в 5 км на северо-восток от деревни ZZ”. Но как-то структурировать такие адреса не получится.
    К населённым пунктам можно приравнять некоторые другие объекты: садовые товарищества, детские лагеря, дома отдыха etc

  • адрес населённого пункта - это административная подчинённость этого нас. пункта.
    Исключения: для “столиц” админ. единиц можно пропускать уровень этой единицы - “Россия, г. Калуга” вместо “Россия, Калужская обл, г. Калуга”.
    И кроме редких случаев в адрес не включаются сельские поселения.

  • адрес внутри нас. пункта - тут уже вылезают все местные заморочки с кварталами, микрорайонами итд.
    С ними ещё надо разбираться.

Вот как-то так :slight_smile:

Лёш, существует множество способов адресации объекта. Есть кадастровые номера. Своя адресация строений у ЖЭКа. Многие структуры создают свою систему адресации.
Та адресация, к которой мы все привыкли - “город-улица-дом” - это всё почтовая адресация, только в несколько урезанном варианте. Этим вариантом адресации пользуются многие - милиция, налоговая, всякие -телекомы и пр. Почему? Потому, что это самый старый способ адресации (почта появилась намного раньше всяких БТИ), это, наверно, самый очевидный и удобный, с помощью аншлагов, созданных для данного типа адресации, очень легко ориентироваться на местности. И утверждать, что в ОСМ мы пытаемся внедрить какой-то мифический “другой” способ адресации глупо. Да, мы как-бы исключили почтовый индекс и да, мы не задаем (пока) конечного получателя, но в любом случае это именно почтовая адресация. И в конечном счете “потребители” карты пользоваться будут именно этой адресацией.

Ну, я не вижу смысла отдельно выделять адрес НП, и перечисленное тоже причины: адреса вне НП тоже есть, и придётся делать костыль в виде приравнивания любых скоплений домов с названием населённому пункту.

То есть универсальную схему мы получаем только до региона.