|
|
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Непроходимо организовать в бд хранение адреса. Структура адреса: Страна->Регион->Населенный пункт. Проблема в том, что у ряда адресов нет региона, т.е. Страна->Населенный пункт. Подскажите, пожалуйста, насколько оптимально хранить адрес в бд, в такой структуре: countries[id, name], regions[id, country_id, name], сities[id, country_id, region_id, name] Запрос одного типа: нужно получить полную строку адреса вида Страна->Регион->Населенный пункт или Страна->Населенный пункт, если региона нет. Цель: быстрые выборки, при наличии большого количества адресов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2013, 23:31 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
* Необходимо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2013, 23:32 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
oxra, Достали "изобретатели". Все уже изобретено до вас. КЛАДР называется. Поисковик расскажет подробнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 00:02 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
oxra, Вполне нормальный вариант. Еще для большей скорости (но не для оптимальности, если под оптимальностью подразумевать нормализацию). Можете в момент формирования адреса (т.е. выбора страны, региона, города и т.п.) формировать нужную Вам строку и хранить ее в БД. тогда выбирать вообще будет просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 08:55 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
oxra, Может Адресный классификатор сделать на основе дерева? Я бы сделал так Id IdParent - ссылка на родителя Name - название IdType - тип элемента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 11:18 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
> у ряда адресов нет региона, т.е. Страна->Населенный пункт Например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 11:35 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
guest_20040621> у ряда адресов нет региона, т.е. Страна->Населенный пункт Например? Антарктида. Зимовка "Медвежья" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 11:44 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
Любой адрес в Люксембурге, например. Но вообще топик фигня. Поиск о региону/городу и т.п никак не связан с хранением адреса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 11:47 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
guest_20040621> у ряда адресов нет региона, т.е. Страна->Населенный пункт Например? Российский почтовый индекс 468320, Байконур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 11:48 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
orehov_iguest_20040621> у ряда адресов нет региона, т.е. Страна->Населенный пункт Например? Антарктида. Зимовка "Медвежья" :)С каких это пор Антарктида стала страной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 12:27 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
> Антарктида. Зимовка "Медвежья" Это не регулярный адрес. Для геонимов бессмысленно использовать систему адресации, основанную на административно-территориальном делении. > Российский почтовый индекс 468320, Байконур. Полагаю, должен присутствовать номер в/ч, но все равно это хороший пример. Байконур - арендованная у Казахстана территория, адрес, не связанный с административно-территориальным делением Российской Федерации. Полагаю, из примеров должно быть ясно, что почтовая адресация и административно-территориальные единицы - две разные задачи. Поэтому КЛАДРы и прочая хрень идут лесом. Есть желающие предложить прототип структуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 12:32 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
tanglirС каких это пор Антарктида стала страной?[/quot] Да она уже практически поделена. Осталось только границы провести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 12:36 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЛюбой адрес в Люксембурге, например. Но вообще топик фигня. Поиск о региону/городу и т.п никак не связан с хранением адреса. Не очень понял, допустим объявление может быть привязано к городу и региону(если он есть). И нужно выбирать объявления в пределах региона, или в пределах города. То почему поиск не связан с хранением? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 13:00 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
oxraТо почему поиск не связан с хранением? Потому что "географическое расположение" и "почтовый адрес" это два разных атрибута. И поиск по первому никак не связан с хранением второго. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 13:19 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
guest_20040621Есть желающие предложить прототип структуры? Так тут главное -- цель знать, техзадание. "Цель: быстрые выборки, при наличии большого количества адресов." -- это хреновня, а не цель, это в стиле "чтобы быстро работало". Надо знать, по каким критериям выборки, для каких целей. А он даже не говорит, какой адрес -- почтовый, административный. Короче, техзадание надо подробное, а не это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 14:01 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Есть желающие предложить прототип структуры? Как универсальный вариант можно сделать так: create table Address ( AddressID int, AddressElementID int, AddressElementName varchar(255), AddressTypeID int ) Где AddressTypeID , определяет что за элемент адреса: страна, регион, город и т.п. Можно также вынести AddressElement в отдельный справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 14:11 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
> Так тут главное -- цель знать, техзадание. Получив решение в общем виде, отсечь лишнее достаточно просто. > какой адрес -- почтовый, административный Это тоже не принципиально. Но из определения "почтовый" мы можем получить еще один прецедент: адресация посредством служебного идентификатора территориального отделения национальной почтовой службы. Остались еще несколько вариантов адресации. > AddressTypeID , определяет что за элемент адреса: страна, регион, город и т.п. > Можно также вынести AddressElement в отдельный справочник. Хорошая попытка. Обобщите ваше предложение. Еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 14:59 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
> Так тут главное -- цель знать, техзадание. Получив решение в общем виде, отсечь лишнее достаточно просто. Рекомендую к прочтению: http://lurkmore.to/42 Так что я уже дал тебе решение в общем виде -- 42. Отсекай теперь лишнее. > какой адрес -- почтовый, административный Это тоже не принципиально. Но из определения "почтовый" мы можем получить еще один прецедент: адресация посредством служебного идентификатора территориального отделения национальной почтовой службы. Остались еще несколько вариантов адресации. Это очень принципиально. Есть почтовые адреса типа "москва, главпочтампт, Иванову, до востребования". Есть типа "Россия 196240 а/я 802". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 15:50 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
> Рекомендую к прочтению Тупить бросайте. > Так что я уже дал тебе решение в общем виде -- 42 Дружище, вы не решение дали, а подъ^бку. Разочаровали. В сад. Остальным: бОльшая часть способов адресации названа. 1. Регулярная почтовая адресация. Индекс (если есть), административно-территориальная единица (или часть их иерархии), населенный пункт, локальный идентификатор (пока без уточнений, что это такое); 2. Внутренний идентификатор почтовой службы; 3. Идентификатор сервиса почтовой службы; 4. Специальная внутренняя адресация для территорий, находящихся во временном использовании в соответствии с межправительственными соглашениями; 5. Адресация для территорий, использование которых регламентировано международными соглашениями. Кто-то готов дополнить и обобщить правила адресации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 16:16 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
tsaritsinguest_20040621> Есть желающие предложить прототип структуры? Как универсальный вариант можно сделать так: create table Address ( AddressID int, AddressElementID int, AddressElementName varchar(255), AddressTypeID int ) Где AddressTypeID , определяет что за элемент адреса: страна, регион, город и т.п. Можно также вынести AddressElement в отдельный справочник. А что означает AddressElementID в вашей структуре ?: 1|?|Москва|city ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 16:21 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
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, т.е посделовательность элементов будет зависеть от того какой у каждого тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 16:43 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Антарктида. Зимовка "Медвежья" Это не регулярный адрес. Для геонимов бессмысленно использовать систему адресации, основанную на административно-территориальном делении. > Российский почтовый индекс 468320, Байконур. Полагаю, должен присутствовать номер в/ч, но все равно это хороший пример. Байконур - арендованная у Казахстана территория, адрес, не связанный с административно-территориальным делением Российской Федерации.Код региона "Байконур" по КЛАДР - 99 У меня такое ощущение, что для половины участников слово КЛАДР - пустой звук. Настолько пустой, что даже в голову не приходит погуглить, что это такое и зачем его здесь советуют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 16:57 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
> Код региона "Байконур" по КЛАДР - 99 Если удивляться каждому чиху дебилов - жизни не хватит. Не пользуйтесь поделками обкуренных китайских первоклассников и будет вам Щастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 17:03 |
|
||
|
Прошу совет по организации хранения адреса
|
|||
|---|---|---|---|
|
#18+
guest_20040621Полагаю, должен присутствовать номер в/ч, но все равно это хороший пример. Байконур - арендованная у Казахстана территория, адрес, не связанный с административно-территориальным делением Российской Федерации. Полагаю, из примеров должно быть ясно, что почтовая адресация и административно-территориальные единицы - две разные задачи. Поэтому КЛАДРы и прочая хрень идут лесом. Ну почему, пример с Байконуром был выдран из "Эталонный справочник почтовых индексов объектов почтовой связи". Можно пользоваться вместо КЛАДР. Но он местами весьма забавный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 17:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38216424&tid=1541295]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 444ms |

| 0 / 0 |
