Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Oracle Spatial, layers  [new]
volkodav_s
Member

Откуда:
Сообщений: 45
Как правильно, с точки зрения Spatial, хранить карты?
имеется ввиду, по какому принципу разбивать на слоя,
понятное дело что нужно разбивать слоя по SRID, но
правильно ли будет разбивать по "слоям", каждый слой хранить в отдельной таблице?
15 май 09, 12:57    [7184699]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Spatial, layers  [new]
Sergei.Agalakov
Member

Откуда:
Сообщений: 575
Слой обычно определяет тип данных - дороги, железные дороги, реки, фонарные столбы...
В базе данных слой как правило представляется в виде таблицы. Разумеется, есть исключения. Например, карта дорог, где один слой - дороги, построенные до 1980 года, другой слой - дороги, построенные с 1980 по 1990 года и т.п., но все эти слои хранятся в одной таблице.
15 май 09, 18:44    [7187191]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Spatial, layers  [new]
volkodav_s
Member

Откуда:
Сообщений: 45
Sergei.Agalakov,

хм, на сколько я знаю, слои правильно разбивать по семантики геометрий,
или как?
15 май 09, 19:29    [7187294]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Spatial, layers  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
volkodav_s
Sergei.Agalakov,

хм, на сколько я знаю, слои правильно разбивать по семантики геометрий,
или как?


Если я правильно понял...
Вы имеете в виду, что, например, информацию о частных домах (точечные объекты) и о многоэтажках (полигонах) хранится в одной таблице при условии, что атрибутика этих типов объектов одинаковая. В этом случае нужно иметь поле-признак того, к какому слою принадлежит объект.

Делать можно и так, и так. Никто не мешает.
На самом деле все зависит от того, что быстрее будет работать и с чем будет работать легче.

Например, если Вам чаще нужно отображать ТОЛЬКО многоэтажки, то чтение всей таблицы будет чересчур избыточным, т.к. либо
а) придется прочитать ВСЕ строки и выкинуть ненужные, либо
б) придется использовать индекс.
А вот если разнести многоэтажки и частную застройку по разным таблицам, то Вы получите хорошую оптимизацию производительности от самой базы.

Я склоняюсь к использованию для каждого слоя своей таблицы. Мне этот подход ближе, т.к. он соответствует тому, чему учит теория реляционных баз данных(слой->сущность->таблица). Но мне встречались случаи, когда эффективнее был подход "3 таблицы" - точки, полилинии, полигоны. Но опять таки очень частный случай.
15 май 09, 22:15    [7187594]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Spatial, layers  [new]
volkodav_s
Member

Откуда:
Сообщений: 45
Alexander Ryndin,

Дело в том что в одной карте, обзорной, около 160 тыс. геометрий,
и почти всегда нужно показывать все слоя, редкие случай когда нужно
отобразить только один слой. В таблице sdo всего хранится 1 миллион геометрий.


Я вот еще не совсем понимаю, как связывать все слоя в карте,
после того как их зарегистрировал в USER_SDO_GEOM_METADATA,
понятно что можно все таблицы "вязать" при помощи динамического SQL,
но я не уверен что это нужно делать именно так...
16 май 09, 10:40    [7188027]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Spatial, layers  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
volkodav_s,

А в чем показывать то объекты надо?
16 май 09, 14:00    [7188209]     Ответить | Цитировать Сообщить модератору
 Re: Oracle Spatial, layers  [new]
volkodav_s
Member

Откуда:
Сообщений: 45
не совсем понял вопроса,
на данном этапе, в качестве просмоторщика, используется
Bentley microsystem, но я хочу потихоньку перевести все это добро на тонкий клиент:)
17 май 09, 02:57    [7189703]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить