|
|
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
temigчестно скажу не осилил все что понаписали. Как такой вариант: Table houses (id INT, street_id INT, house_number VARCHAR, <<еще 100500 полей описывающих дом>>) Table streets (id INT, street_name VARCHAR) Table alternative_address(house_id INT, street_id INT, house_number VARCHAR) Я думаю что alternative_address будет небольшой таблицей, соответственно не будет сильно тормозить. Зато избыточности нету.Да, много чего понаписали, надо было прочитать :-) В вашей схеме нельзя создать дом без улицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 13:25 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
alexeyvg, в streets создается запись "без адреса" или что-то вроде этого и у всех домов без улицы как street_id прописывается id этой записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 13:40 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
temigчестно скажу не осилил все что понаписали. Как такой вариант: Table houses (id INT, street_id INT, house_number VARCHAR, <<еще 100500 полей описывающих дом>>) Table streets (id INT, street_name VARCHAR) Table alternative_address(house_id INT, street_id INT, house_number VARCHAR) Я думаю что alternative_address будет небольшой таблицей, соответственно не будет сильно тормозить. Зато избыточности нету. Гадать какой адрес "основной", а какой "второстепенный" вряд ли имеет смысл. Уберите из Дома улицу (тем более, что "улица" не является характеристикой дома - это же просто дорога, которая проходит где-то "в районе" дома, или просто площадь, или еще не известно что) и номер дома. И получится та же схема, которую мы уже получили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 14:13 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
Бредятина, Я думаю зависит от конкретной задачи. Если альтернативный адрес нужен раз в пятилетку - почему бы не вынести его в отдельную таблицу. Например нам надо делать выборку списка домов по одному или нескольким таким критериям как год постройки, этажность, кол-во подъездов, району, микрорайону, серии постройки, материала, и т.п. А альтернативный адрес, к примеру, нужно только выводить если пользователь захочет просмотреть информацию о каком-то конкретном доме из своей полученной выборки. Думается мне такое решение более оптимально для такой задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 14:43 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
temigalexeyvg, в streets создается запись "без адреса" или что-то вроде этого и у всех домов без улицы как street_id прописывается id этой записи.Почему "без адреса"? Адрес-то есть, только без улицы. Вот пример - город Москва, город Зеленоград, микрорайон 13, дом 422Б То есть город состоит из городов, города второго уровня из районов, в районах дома с номерами. Нормальные существующие адреса. И как это накладывается на вашу структуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 15:25 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
alexeyvgВот пример - город Москва, город Зеленоград, микрорайон 13, дом 422Бтолько 4-ый микрорайон, а не 13. В Зеленограде номер микрорайна - это тысячный и сотенный разряды номера корпуса. И, кстати, указываются не всегда, т.е. записи "4-й микрорайон дом 22Б" и "копус 422Б" - эквивалентны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 15:39 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
alexeyvg, по микрорайону все просто, микрорайон записываем как улицу. Ну а города в городах можно пересчитать по пальцам имхо, не думаю что у топикстартера такой вариант. Он же делает базу для одного своего какого-то города. Я живу в Челябинске. Городов в городе у нас нету конечно, но улицы-микрорайоны вполне встречаются. Например что-то вроде "микрорайон премьера, дом №9". В том же 2gis так и обозначается, ул. Микрорайон Премьера, дом №9. Или что-то вроде ул. Краснопольская площадка, дом №7. Чем этот же микрорайон по сути отличается от улицы? Топикстартер то что-то давно не появлялся, может нам расскажет поподробнее что ему нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 16:35 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
alexeyvg, да, кстати, озвучьте как Вы предлагаете хранить данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 16:40 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
temig Я думаю зависит от конкретной задачи. Если альтернативный адрес нужен раз в пятилетку - почему бы не вынести его в отдельную таблицу. Я говорю, что мы не знаем какой адрес "хороший", а какой "плохо", а Вы говорите, что "плохой" нужно вынести в отдельную таблицу. Как-то не логично:) temig Например нам надо делать выборку списка домов по одному или нескольким таким критериям как год постройки, этажность, кол-во подъездов, району, микрорайону, серии постройки, материала, и т.п. В перечисленные критерии Вы включили два, чтобы "оправдать" отдельное хранение "хорошего" адреса: "район" и "микрорайон". Но ведь "дом" модет относиться к нескольким микрорайонам и, соответсвенно, районам:) temig А альтернативный адрес, к примеру, нужно только выводить если пользователь захочет просмотреть информацию о каком-то конкретном доме из своей полученной выборки. Никакой он не "альтернативный". Вы ввели это прилагательное, чтобы "оправдать" некое решение. Мало того, что никто не знает что такое "адрес", так мы зачем-то вводим еще и "альтернативный адрес":) temig Думается мне такое решение более оптимально для такой задачи. Какой "такой задачи"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 16:53 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
Злой БобрCreazim, Незабивайте дурным голову. Во первых человек неможет быть одновременно зарегистрирован по двум и более адресам Теоретически - не может, а вот на практике - бывает. Дело было в РФ. Человек на своем участке построил второй дом. В БТИ "прикольнулись": адрес первого дома был ул. Виноградная, д. 5, на второй дом дали адрес ул. Абрикосовая, д. 15А. Да-да, участок был угловой. Справка о владении пришла в паспортный стол. Там посчитали, что у человека теперь два адреса прописки. Поскольку ситема автоматизации паспортного стола тоже думала, что у человека не может быть двух адресов регистрации, но на бумаге требовалось отображать оба адреса, в паспортном столе завели улицу с названием "ул. Виноградная, д. 5, ул. Абрикосовая", у уже на этой улице завели дом 15А. В итоге, всякие выписки из домовой книги и прочие справки о регистрации выглядят правильно. Но... Как вы уже, наверное, поняли, улица с таким интересным названием когда-нибудь может привлечь внимание всяких органов, требующих отчетов от этого паспортного стола. (Пока, правда, не привлекла, но и времени прошло немного, три-четыре месяца.) А может, и не привлечет никогда. Так и пойдет в общероссийское плавание улица с замечательным названием - "ул. Виноградная, д. 5, ул. Абрикосовая". Аминь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 16:55 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
Бредятинаtemig Думается мне такое решение более оптимально для такой задачи. Какой "такой задачи"? Я просто привел пример когда мой вариант может быть вполне оправдан: temigЕсли альтернативный адрес нужен раз в пятилетку - почему бы не вынести его в отдельную таблицу. Например нам надо делать выборку списка домов по одному или нескольким таким критериям как год постройки, этажность, кол-во подъездов, району, микрорайону, серии постройки, материала, и т.п. А альтернативный адрес, к примеру, нужно только выводить если пользователь захочет просмотреть информацию о каком-то конкретном доме из своей полученной выборки Пример: база о продающихся квартирах с поиском по различным критериям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 17:02 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
От углового дома мы плавно перешли к угловому участку. А, следовательно, к угловым микрорайонам, районам, областям, странам и частям света. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 17:07 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
temig Я просто привел пример когда мой вариант может быть вполне оправдан... Пример: база о продающихся квартирах с поиском по различным критериям. И зачем нужна еще одна база? Почему эта задача не может быть решена в рамках одной базы, в которой нет "хороших" и "плохих" адресов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 17:10 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
БредятинаОт углового дома мы плавно перешли к угловому участку. У углового участка сначала был вполне-себе угловой номер дома. Ты читаешь не внимательно. Ведь выписки из домовой книги и справки о регистрации выдаюия на номера домов, а не участков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 17:11 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
рф, паспортный стол У углового участка сначала был вполне-себе угловой номер дома. Ты читаешь не внимательно. Ведь выписки из домовой книги и справки о регистрации выдаюия на номера домов, а не участков. Внимательно читаю:) У участка не может быть номера дома. На участке вообще может не быть ни одного дома. А на "Вашем" участке построено сразу два (может быть и четыре). И речь идет в Вашем сообщении вовсе не об угловом доме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 17:16 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
Мда, действительно - бредятина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 17:34 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
рф, паспортный столМда, действительно - бредятина. Стараюсь:) Спасибо, что подтвердили, что речь в Вашем сообщении не об угловом доме:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 17:54 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
temigalexeyvg, по микрорайону все просто, микрорайон записываем как улицу. Ну а города в городах можно пересчитать по пальцам имхо, не думаю что у топикстартера такой вариант. Он же делает базу для одного своего какого-то города. Топикстартер то что-то давно не появлялся, может нам расскажет поподробнее что ему нужно.Микрорайон записываем как улицу - это не универсально. В общем, я уже писал здесь: "Без описания конкретной бизнес-задачи обсуждение бессмысленно." temigЯ живу в Челябинске. Городов в городе у нас нету конечно, но улицы-микрорайоны вполне встречаются. Например что-то вроде "микрорайон премьера, дом №9". В том же 2gis так и обозначается, ул. Микрорайон Премьера, дом №9. Или что-то вроде ул. Краснопольская площадка, дом №7. Чем этот же микрорайон по сути отличается от улицы? Отличается названием. Всё таки неправильно писать ул. Микрорайон Премьера, дом №9 улица, микрорайон, проспект, бульвар - должны называться как называются, а не "улица проспект ленина" temigalexeyvg, да, кстати, озвучьте как Вы предлагаете хранить данные?Если универсально - то просто древовидный классификатор територий с указанием типа и привязка домов к нижнему уровню. Номер дома - просто строка. Далее в зависимости от конкретной бизнес-задачи определяем, как писать угловые дома. В документах такие дома пишутся с одной улицей, соответственно достаточно привязывать дом к одной улице (классификатору територии), если иное не требуется в данной бизнес-задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2011, 18:05 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
авторПоэтому и следует подходить к этому вопросу с научной и инженерной точек зрения, в первую очередь. В Вашем сообщении есть несколько проблем: 1) Вы пишите об "уникальных идентификаторах". Возможно, Вы сообщаете об известном факте хранения "адресов" в РАЗНЫХ информационных системах. И их разного "наименования в этих системах. Хотя, возможно, что имеют место "официальные синонимы" адресов:) 2) Вы пишите о понятиях, которые не определены (или определены по разному в разных системах. Например, "категория". Почему Вы думаете, что "в первом случае почтовое отделение заявлено как категория". Так может написать только разработчик конкретной системы:) То же самое относится и ко "второму случаю". И уж совершенно неизвестно что такое "адрес":) понятно, что в разных информационных системах по-разному. но мы пытаемся рассуждать об одной, НОВОЙ, правильной, БД которая учтет интересы всех информационных систем. чтобы не было так, что из-за впихивания почтового отделения в кладар, оно становилось улицей. я вижу здесь две проблемы: синонимы адресов и отсутствие стандарта на структуру адреса. первая решается легко: создаем таблицу синонимов. Там, где нужно вывести сам адрес выводим один из них (первый попавшийся, по алфавиту, наиболее популярный - они же синонимы, какая разница). Вторую проблему я не знаю, как решить. Если хранить весь адрес в строке, то нельзя будет делать выборку по номеру микрорайона, например. (хотя, зачем?) Да и синонимы будут плодиться с каждой новой операционисткой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2011, 05:19 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
о чем воще бАзар? дом корень - дальше граф (хоть до Киева) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2011, 08:08 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
boltachevя вижу здесь две проблемы: синонимы адресов и отсутствие стандарта на структуру адреса. первая решается легко: создаем таблицу синонимов. Там, где нужно вывести сам адрес выводим один из них (первый попавшийся, по алфавиту, наиболее популярный - они же синонимы, какая разница). Вторую проблему я не знаю, как решить. Если хранить весь адрес в строке, то нельзя будет делать выборку по номеру микрорайона, например. (хотя, зачем?) Да и синонимы будут плодиться с каждой новой операционисткой. 1) только не таблицу синонимов, а таблицу адресов, так ведь? 2) но мы так и не знаем что такое "адрес"; не мудрено, что отсутствует стандарт на структуру неизвестно чего:) В строке "адрес" удобно хранить, но только это ВЫЧИСЛЯЕМАЯ характеристика (причем именно в той структуре, в которой кому-либо нужно; чтобы там, к примеру, было бы именно 9 фрагментов, разделенных запятой и т.п.). Совсем недавно в одной из тем мы рассматривали этот вопрос. Если вспомню где, дам ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2011, 15:25 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
Это в теме "Нормальная форма Бойса-Кодда" немного обсуждалось. Пара цитат: … Именно иерархия, а для экземпляра-владельца достаточно определить только нижний узел. А именно, для представления Адреса прописки для Человека достаточно связать Человека только с идентифицированной квартирой (или домом). При этом и улица, и населенный пункт, и страна, и планета определяются автоматически. Я бы просто дополнительно создал вычисляемую характеристику Адрес прописки объекта Человек, и выводил бы в ней этот самый Адрес прописки в стандартном "красивом" виде. Собственно я Вам и объясняю, что единственное, что все еще нужно немножко программировать при создании приложения - это триггеры и вычисляемые характеристики. Кстати, вместо (не хранимых в БД значений) вычисляемых характеристик можно использовать триггеры, в этом случае ввод данных будет по медленнее, а вывод по быстрее:). … Ну и по Вашему примеру. Здесь же Город (и т.п.) - это не объект с многочисленными характеристиками, а просто "элемент классификатора". Тогда это все решается двумя объектами и двумя связями между ними: Элемент адреса --Состоит из/Входит в--> Элемент адреса Элемент адреса <--Имеет/Используемый для-- Тип элемента адреса У объекта Тип элемента адреса (его экземплярами в Вашем примере являются "квартира", "дом", "улица", "город", "страна", "планета", "галактика") могут быть характеристики: 1 Наименование 2 Номер уровня в КЛАДР 3 и др. --- Правда, мы опять отклонились от "углового дома". Но если использовать подход с "иерархией" (КЛАДР, например), то пя говорить о "сети", а не о "дереве":) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2011, 15:45 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
БредятинаЕсли люди и дальше буду уходить от вопроса "что такое адрес"... Верно. Предлагаю вернуться к истокам. Понятие "адрес" возникло у людей с давних времен. Еще в первобытном обществе, наши волосатые пращуры, столкнувшись в борьбе за еду, пещеру, женщину, размахивали дубинками, и с помощью гортанных выкриков и недвусмысленных жестов посылали друг друга по разным адресам . Побеждал тот, кто знал больше заковыристых адресов - ему и доставалось право продолжить род. Поэтому, по закону естественного отбора, адреса становились все сложнее - появились корпуса, флигели, микрорайоны, угловые дома, КЛАДР, и даже "официальный сайт символического направления" (ссылку приводить не буду :-). В итоге, под "адресом" понимают что-то из следующего: Административное подчинение - описывает вертикаль государственных органов: Государство - губерния -уезд -сельсовет. Тут приплетаются автономные округа и республики, города неожиданно-федерального подчинения и прочие прелести. Все это весьма зыбко, поскольку президент, встав не с той ноги, вполне может затеять административную реформу. Территориальное расположение - примерно описывает местонахождение объекта, в связи с улицами, микрорайонами, оврагами, и другими малоподвижными и хорошо заметными складками местности. Может быть как иерархией с пропусками уровней (деревня без улиц), так и с "призовыми" уровнями (например, в середине улицы один номер занимает военный городок, а в нем куча своих домов с нумерацией от единицы). Пример реального адреса - "Урочище Цветочное, д.1". ( из словаря: Урочище в физической географии - одна из морфологических частей ландшафта географического, сопряжённая система фаций ландшафтных... В широком понимании У. – любая часть местности, отличная от остальных (например, лес среди поля) ). Почтовые адреса - дерево почтовых отделений, плюс элементы первых двух иерархий. Но может ограничиваться "а/я 15", не говоря уже о секретных военных городках, которые в народе издавна называли "почтовыми ящиками" из-за нехитрых шифрований почтальонов. Плюс полевая почта, и прочее, и прочее... Если говорить об объектах недвижимости, которыми кто-то владеет (земельные участки, строения, квартиры, комнаты в коммуналках), то еще одним "первоисточником" адресов является соответствующий гос.орган регистрации прав собственности - как он напишет, так и тому быть. А остальным остается только буква в букву перенести адрес из его документов в свои базы данных - иначе они рискуют остаться с носом при первом же судебном разбирательстве. Если же говорить о физических лицах, то у них есть единственный адрес регистрации постоянного места жительства, и первоисточник его написания - соответствующий паспортные столы, которые, в сущности, являются специализированными подразделениями МВД. То есть, они никак не подчиняются ни уже упоминавшимся гос.органам регистрации прав собственности на недвижимость, ни, разумеется, почте. Поэтому их базы, вообще говоря, могут "слегка" отличаться от вышеуказанных. Но если у носорога плохое зрение - это не его проблемы... Кстати, с этой точки зрения, пример о двух домах на одном участке совершенно прозрачен: человек зарегистрирован в одном из домов (на Виноградной), но является владельцем также другого дома (на Абрикосовой). То есть, регистрация места проживания, и право собственности на жилье - совершенно разные вещи. Можно быть зарегистрированным и в чужом доме (если владелец не возражает), и в общежитии, и при этом владеть любым количеством заводов, газет, пароходов, и других домов. К БТИ здесь вопросов нет. А вот телодвижения паспортного стола, мягко говоря, непонятны. Чтобы было еще интереснее: например, на Украине, у человека, кроме единственного адреса регистрации, может быть произвольное количество адресов "временного пребывания". Но железно привязываться к адресу регистрации тоже нельзя - не надо забывать о нерезидентах. А также о том, что ответственность за нерегистрацию символическая - вдруг какому-то бизнесмену удобно какое-то время формально побомжевать. Конторы, которые ведут городские коммуникации (свет, газ, вода, канализация, телефон), обычно ведут собственную документацию с собственными инвентарными номерами объектов, при этом "растаскивая" и "распиливая" здания и сооружения произвольным образом, по технологии подтаскивания проводов и газопроводов. Думаю, в свете сказанного, продолжать вести речь о некоем "единственно правильном" адресе, без контекста задачи, будет несколько странно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2011, 14:04 |
|
||
|
Угловой дом
|
|||
|---|---|---|---|
|
#18+
Как это делается в Одессе: Общие правила присвоения адресов 2.1. Присвоение адресов объектам, образующим непрерывный фронт застройки, производятся от моря с нечетными номерами по левой стороне улицы и четными номерами – по правой. 2.2. Зданиям и сооружениям, находящимся на пересечении улиц различных категорий, присваивается адрес по улице более высокой категории. 2.3. Зданиям и сооружениям, находящимся на пересечении улиц равных категорий, присваивается адрес по улице, на которую выходит главный фасад здания. В случае, если на угол выходят два равнозначных фасада одного здания, адрес присваивается по улице, идущей в направлении от моря. 2.4. Присвоение адреса зданиям и сооружениям, образующим периметр площади, производится по часовой стрелке, начиная от улицы более высокой категории, со стороны моря. При этом, последовательность номеров зданий на сквозных улицах, примыкающих к площадям, прерывается. В случае, если угловое здание имеет главный фасад и значительную протяженность вдоль примыкающей улицы, адрес может присваиваться по улице, а не по площади. 2.5. Присвоение адресов объектам недвижимости, расположенным между двумя зданиями, корпусами или строениями с последовательными адресами, производится, используя меньший номер соответствующего объекта с добавлением к нему буквенной литеры. 2.6. Наружным обособленным пристройкам к зданию, сооружению может присваиваться в установленном порядке адрес, как самостоятельному зданию. 2.7. Адресом земельного участка является адрес объекта недвижимости, расположенного на нем. 2.8. Адрес не застроенного земельного участка определяется при его передаче в собственность (пользование) на основании градостроительной, проектной и землеустроительной документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2011, 14:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37048953&tid=1541838]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 518ms |

| 0 / 0 |
