powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Прошу совет по организации хранения адреса
25 сообщений из 57, страница 1 из 3
Прошу совет по организации хранения адреса
    #38216397
oxra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Непроходимо организовать в бд хранение адреса. Структура адреса: Страна->Регион->Населенный пункт. Проблема в том, что у ряда адресов нет региона, т.е. Страна->Населенный пункт.

Подскажите, пожалуйста, насколько оптимально хранить адрес в бд, в такой структуре:

countries[id, name],
regions[id, country_id, name],
сities[id, country_id, region_id, name]

Запрос одного типа: нужно получить полную строку адреса вида Страна->Регион->Населенный пункт или Страна->Населенный пункт, если региона нет.

Цель: быстрые выборки, при наличии большого количества адресов.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216399
oxra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
* Необходимо
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216424
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oxra,

Достали "изобретатели". Все уже изобретено до вас. КЛАДР называется. Поисковик расскажет подробнее.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216532
tsaritsin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oxra,

Вполне нормальный вариант.
Еще для большей скорости (но не для оптимальности, если под оптимальностью подразумевать нормализацию). Можете в момент формирования адреса (т.е. выбора страны, региона, города и т.п.) формировать нужную Вам строку и хранить ее в БД. тогда выбирать вообще будет просто.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216771
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oxra,

Может Адресный классификатор сделать на основе дерева?
Я бы сделал так
Id
IdParent - ссылка на родителя
Name - название
IdType - тип элемента
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216809
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> у ряда адресов нет региона, т.е. Страна->Населенный пункт

Например?
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216825
orehov_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> у ряда адресов нет региона, т.е. Страна->Населенный пункт

Например?
Антарктида. Зимовка "Медвежья" :)
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216831
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любой адрес в Люксембурге, например.

Но вообще топик фигня. Поиск о региону/городу и т.п никак не связан с хранением адреса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216836
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> у ряда адресов нет региона, т.е. Страна->Населенный пункт

Например?
Российский почтовый индекс 468320, Байконур.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216931
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orehov_iguest_20040621> у ряда адресов нет региона, т.е. Страна->Населенный пункт

Например?
Антарктида. Зимовка "Медвежья" :)С каких это пор Антарктида стала страной?
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216942
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Антарктида. Зимовка "Медвежья"

Это не регулярный адрес. Для геонимов бессмысленно использовать систему адресации, основанную на административно-территориальном делении.

> Российский почтовый индекс 468320, Байконур.

Полагаю, должен присутствовать номер в/ч, но все равно это хороший пример. Байконур - арендованная у Казахстана территория, адрес, не связанный с административно-территориальным делением Российской Федерации.

Полагаю, из примеров должно быть ясно, что почтовая адресация и административно-территориальные единицы - две разные задачи. Поэтому КЛАДРы и прочая хрень идут лесом.

Есть желающие предложить прототип структуры?
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38216954
orehov_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirС каких это пор Антарктида стала страной?[/quot]
Да она уже практически поделена. Осталось только границы провести.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217004
oxra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЛюбой адрес в Люксембурге, например.

Но вообще топик фигня. Поиск о региону/городу и т.п никак не связан с хранением адреса.


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

То почему поиск не связан с хранением?
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217056
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oxraТо почему поиск не связан с хранением?
Потому что "географическое расположение" и "почтовый адрес" это два разных
атрибута. И поиск по первому никак не связан с хранением второго.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217169
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Есть желающие предложить прототип структуры?

Так тут главное -- цель знать, техзадание.

"Цель: быстрые выборки, при наличии большого количества адресов." -- это хреновня, а не цель, это в стиле "чтобы быстро работало".

Надо знать, по каким критериям выборки, для каких целей. А он даже не говорит, какой адрес -- почтовый, административный.
Короче, техзадание надо подробное, а не это.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217191
tsaritsin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621>
Есть желающие предложить прототип структуры?
Как универсальный вариант можно сделать так:
create table Address
(
AddressID int,
AddressElementID int,
AddressElementName varchar(255),
AddressTypeID int
)
Где AddressTypeID , определяет что за элемент адреса: страна, регион, город и т.п. Можно также вынести AddressElement в отдельный справочник.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217316
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Так тут главное -- цель знать, техзадание.

Получив решение в общем виде, отсечь лишнее достаточно просто.

> какой адрес -- почтовый, административный

Это тоже не принципиально. Но из определения "почтовый" мы можем получить еще один прецедент: адресация посредством служебного идентификатора территориального отделения национальной почтовой службы. Остались еще несколько вариантов адресации.

> AddressTypeID , определяет что за элемент адреса: страна, регион, город и т.п.
> Можно также вынести AddressElement в отдельный справочник.

Хорошая попытка. Обобщите ваше предложение.

Еще?
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217439
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Так тут главное -- цель знать, техзадание.

Получив решение в общем виде, отсечь лишнее достаточно просто.



Рекомендую к прочтению:
http://lurkmore.to/42

Так что я уже дал тебе решение в общем виде -- 42.
Отсекай теперь лишнее.


> какой адрес -- почтовый, административный

Это тоже не принципиально. Но из определения "почтовый" мы можем получить еще один прецедент: адресация посредством служебного идентификатора территориального отделения национальной почтовой службы. Остались еще несколько вариантов адресации.


Это очень принципиально. Есть почтовые адреса типа "москва, главпочтампт, Иванову, до востребования".
Есть типа "Россия 196240 а/я 802".
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217508
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Рекомендую к прочтению

Тупить бросайте.

> Так что я уже дал тебе решение в общем виде -- 42

Дружище, вы не решение дали, а подъ^бку. Разочаровали. В сад.

Остальным: бОльшая часть способов адресации названа.
1. Регулярная почтовая адресация. Индекс (если есть), административно-территориальная единица (или часть их иерархии), населенный пункт, локальный идентификатор (пока без уточнений, что это такое);
2. Внутренний идентификатор почтовой службы;
3. Идентификатор сервиса почтовой службы;
4. Специальная внутренняя адресация для территорий, находящихся во временном использовании в соответствии с межправительственными соглашениями;
5. Адресация для территорий, использование которых регламентировано международными соглашениями.

Кто-то готов дополнить и обобщить правила адресации?
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217522
oxra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tsaritsinguest_20040621>
Есть желающие предложить прототип структуры?
Как универсальный вариант можно сделать так:
create table Address
(
AddressID int,
AddressElementID int,
AddressElementName varchar(255),
AddressTypeID int
)
Где AddressTypeID , определяет что за элемент адреса: страна, регион, город и т.п. Можно также вынести AddressElement в отдельный справочник.


А что означает AddressElementID в вашей структуре ?:

1|?|Москва|city
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217573
tsaritsin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oxratsaritsinпропущено...

Как универсальный вариант можно сделать так:
create table Address
(
AddressID int,
AddressElementID int,
AddressElementName varchar(255),
AddressTypeID int
)
Где AddressTypeID , определяет что за элемент адреса: страна, регион, город и т.п. Можно также вынести AddressElement в отдельный справочник.


А что означает AddressElementID в вашей структуре ?:

1|?|Москва|city

Код Элемента адреса.
По идее, в самой таблице с адресами не будет наименований, но я показал структуру с намеком что потом нужно будет разнести по справочникам, для нормализации.
Приведу пример:
AddressID AddressElementID AddressElementName AddressTypeID
1 1 Москва 1
1 2 Россия 2
2 3 Украина 2
2 4 Донецкая область 3
2 5 Донецк 1
3 2 Россия 2
3 6 Питер 1
Последние 3 поля просятся в отдельный справочник. И тогда у вас получится в таблице:
AddressID AddressElementID
1 1
1 2
2 3
2 4
2 5
3 2
3 6
А при выборке строку адреса стройте в зависимости от AddressTypeID, т.е посделовательность элементов будет зависеть от того какой у каждого тип.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217604
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Антарктида. Зимовка "Медвежья"

Это не регулярный адрес. Для геонимов бессмысленно использовать систему адресации, основанную на административно-территориальном делении.

> Российский почтовый индекс 468320, Байконур.

Полагаю, должен присутствовать номер в/ч, но все равно это хороший пример. Байконур - арендованная у Казахстана территория, адрес, не связанный с административно-территориальным делением Российской Федерации.Код региона "Байконур" по КЛАДР - 99


У меня такое ощущение, что для половины участников слово КЛАДР - пустой звук. Настолько пустой, что даже в голову не приходит погуглить, что это такое и зачем его здесь советуют
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217620
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Код региона "Байконур" по КЛАДР - 99

Если удивляться каждому чиху дебилов - жизни не хватит. Не пользуйтесь поделками обкуренных китайских первоклассников и будет вам Щастье.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217633
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621Полагаю, должен присутствовать номер в/ч, но все равно это хороший пример. Байконур - арендованная у Казахстана территория, адрес, не связанный с административно-территориальным делением Российской Федерации.

Полагаю, из примеров должно быть ясно, что почтовая адресация и административно-территориальные единицы - две разные задачи. Поэтому КЛАДРы и прочая хрень идут лесом.

Ну почему, пример с Байконуром был выдран из
"Эталонный справочник почтовых индексов объектов почтовой связи".
Можно пользоваться вместо КЛАДР.
Но он местами весьма забавный.
...
Рейтинг: 0 / 0
Прошу совет по организации хранения адреса
    #38217677
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> "Эталонный справочник почтовых индексов объектов почтовой связи"

Вы предлагаете взять регламент отдельной офф-лайн лавки и обязать всех пользователей Сети им пользоваться? Ну-ну.
...
Рейтинг: 0 / 0
25 сообщений из 57, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Прошу совет по организации хранения адреса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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