Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / структура базы "страны ->.......->города" / 9 сообщений из 9, страница 1 из 1
20.10.2005, 16:37
    #33335650
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
нужно сделать структуру "страны ->.......->города" с произвольным количеством вложенностей а-ля "область->район->.... город" + название этих объектов админ. деления разные у разных стран ....

максимум до чего додумался это такая структура:

countries
country_id
.....
name

country_structure
structure_id
country_id
parent_id
name

cities
city_id
structure_id
name

вот ... но при таком построении что то я не вижу как получить запросом на пример все города в стране или по городу в какой он стране .... :(

country_structure.parent_id сылается на structure_id в этой же таблице ....
...
Рейтинг: 0 / 0
20.10.2005, 16:56
    #33335715
Smirnov Anton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
country_structure
structure_id
country_id
parent_id
name
то вам в принципе не нужна уже таблица
cities , так как это тоже country_structure
и в рамках отношения country_structure ничем не отличается от области и тп
ну и соответсвенно не нужна так же и такблица countries :)
...
Рейтинг: 0 / 0
20.10.2005, 17:07
    #33335752
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
ну так то оно так :) но страны и города выделить выделить нужно у них свойств своих будет ещё по всяким населениям площадям и прочему .... свойства "промежуточных" делений мало интересуют ...

но как в этом случае быть с запросами ? :(
может есть предложения по более здоровой структуре ?
или идеи как всё же заполучить запросом страну по городу или наоборот все города в странах ? :\
...
Рейтинг: 0 / 0
20.10.2005, 17:24
    #33335800
!!!
!!!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
Я бы примерно так сделал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
CREATE TABLE GEOPUNCT (ID NUMBER NOT NULL, PARENT_ID NUMBER NULL, NAME VARCHAR2( 20 ) NOT NULL, TYPE_ID NUMBER NOT NULL);

CREATE TABLE GEOPUNCTTYPE (ID_TYPE NUMBER NOT NULL, TYPE_NAME VARCHAR2( 20 ) NOT NULL);

INSERT INTO GEOPUNCTTYPE (ID_TYPE , TYPE_NAME)
SELECT  1 , 'СТРАНА' from dual
union all
SELECT  2 , 'Субъект федерации' from dual
union all
SELECT  3 , 'Область' from dual
union all
SELECT  4 , 'Район' from dual
union all
SELECT  5 , 'Штат (США)' from dual
union all
SELECT  6 , 'Кантон (Швейцария)' from dual;
union all
SELECT  7 , 'Федеральный округ(США)' from dual
union all
SELECT  8 , 'Город' from dual


insert into GEOPUNCT (ID, PARENT_ID , NAME, TYPE_ID)
select  1 , null, 'Россия',  1  from dual
union all
select  2 ,  1 , 'Москва',  2  from dual
union all
select  3 ,  1 , 'Московская обл',  3  from dual
union all
select  4 ,  3 , 'Мытищи',  8  from dual
union all
select  5 , null, 'США',  1  from dual
union all
select  6 ,  5 , 'Колумбия',  7  from dual
union all
select  7 ,  6 , 'Вашингтон',  8  from dual
union all
select  9 ,  5 , 'Иллинойс',  5  from dual
union all
select  10 ,  9 , 'Чикаго',  8  from dual;
...
Рейтинг: 0 / 0
20.10.2005, 17:26
    #33335809
!!!
!!!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
JackSну так то оно так :) но страны и города выделить выделить нужно у них свойств своих будет ещё по всяким населениям площадям и прочему .... свойства "промежуточных" делений мало интересуют ...

но как в этом случае быть с запросами ? :(
может есть предложения по более здоровой структуре ?
или идеи как всё же заполучить запросом страну по городу или наоборот все города в странах ? :\Для работы с дополнительными атрибутами создать таблицы и связать их по первичному ключу 1-1. Ну и дополнительные проверки на тип
...
Рейтинг: 0 / 0
20.10.2005, 18:12
    #33335926
YBW
YBW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
JackSвот ... но при таком построении что то я не вижу как получить запросом на пример все города в стране или по городу в какой он стране .... :(


можно проще - ключ вида

Земля/Евразия/Европа/Россия/Центральный Округ/Москва/Центральный Округ/Б. Никитская/5
...
Рейтинг: 0 / 0
21.10.2005, 12:42
    #33337198
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
Особенности каждой страны можно учесть через ТипПодчинения, перечисляющий допустимые вхождения типов административных единиц.

Страна (ИДСтр ->...) ;
ТипАдмЕдиницы (ИДСтр, ИДТипаАЕ -> ФлагСубъекта) ;
ТипПодчинения (ИДСтр, ИДТипаАЕЧто , ИДТипаАЕКуда -> );
АдмЕдиница (ИДАЕ -> ИДСтр, ИДТипаАЕ , ИДАЕКуда, ...);

ФлагСубъекта разрешает вхождение в страну, ИДАЕКуда IS NULL реализует разрешение.
Понятие "Субъект РФ" в ТипАдмЕдиницы не входит - это вычисляемая вещь - кто входит в Россию непосредственно.

Страна ( "Россия" )
ТипАдмЕдиницы ( "Россия", "Город" , "YES")
ТипАдмЕдиницы ( "Россия", "Район" , "NO")
ТипПодчинения ( "Россия", "Город" , "Область" )
АдмЕдиница ( "Москва" ,"Россия", "Город" , NULL );
АдмЕдиница ( "Нижний Новгород" ,"Россия", "Город" , "Нижегородская область");
...
Рейтинг: 0 / 0
21.10.2005, 13:35
    #33337421
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
2 !!!
А также легко
Код: plaintext
1.
2.
3.
4.
insert into GEOPUNCT (ID, PARENT_ID , NAME, TYPE_ID)
select  1 , null, 'Россия',  1  from dual
union all
select  2 ,  1 , 'США',   1  from dual
 
:)
...
Рейтинг: 0 / 0
21.10.2005, 17:05
    #33338070
!!!
!!!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
структура базы "страны ->.......->города"
2 ModelR
Я сказал примерно .
ЗЫЖ А чего, было бы круто ;))
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / структура базы "страны ->.......->города" / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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