Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как хранить в бд города и улицы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
madlabel
Отправлено: 14 Января, 2017 - 18:12:41
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Здравствуйте! Подскажите пож-та, как лучше хранить в бд города и улицы при этом, чтобы удобно было потом осуществялть поиск объектов. Однако
 
 Top
teleoperator27
Отправлено: 14 Января, 2017 - 20:39:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




таблица city
city_id (AI, KEY)
city_name

таблица street
street_id (AI, KEY)
city_id
street_name
 
My status
 Top
armancho7777777 Супермодератор
Отправлено: 14 Января, 2017 - 23:07:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Как-то так:

-------------------------------- -------------------------------- -------------------------------- -----
geo_object_types (Типы гео. объектов: страна, область, город, улица и т.д.)
id
name
short_name
-------------------------------- -------------------------------- -------------------------------- -----
geo_objects
id
parent_id -> geo_objects.id
geo_object_type_id -> geo_object_types.id
name
-------------------------------- -------------------------------- -------------------------------- -----
geo_object_props (country_code, lang_id, postcode ... )
id
geo_object_type_id -> geo_object_types.id
name
-------------------------------- -------------------------------- -------------------------------- -----
geo_object_prop_values
id
geo_object_prop_id -> geo_object_props.id
geo_object_id -> geo_objects.id
value
-------------------------------- -------------------------------- -------------------------------- -----
geo_object_houses
id
geo_object_id -> geo_objects.id
value
-------------------------------- -------------------------------- -------------------------------- -----
geo_object_addresses
id
geo_object_house_id -> geo_object_houses.id
apart_no (номер квартиры)
-----------------------------------------------------------------------------------------------------

(Отредактировано автором: 15 Января, 2017 - 21:25:23)

 
 Top
Мелкий Супермодератор
Отправлено: 14 Января, 2017 - 23:21:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




И учесть, что для всего, что вы предполагаете об адресах - эти неугомонные человечки придумали исключения.
Две одноимённые улицы в одном городе - запросто.
Номер дома - не число, а произвольная строка!
Дом одновременно по нескольким улицам
Дом без улицы
Дом без номера дома
Повторяющиеся названия городов - само собой, бывают. Даже в одной стране.
Адрес без номера квартиры - ну это очевидно.

Много фокусов встречается. Из закладок:
https://habrahabr[dot]ru/company/fri[dot][dot][dot]ond/blog/271733/
https://habrahabr[dot]ru/company/hflabs/blog/260601/


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB