Вопрос

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

Мне любопытно, если кто -то может указать мне на хороший материал на эту тему или может предложить конкретную реализацию.

Спасибо.

Это было полезно?

Решение

Я бы использовал постгис (http://postgis.refractions.net/) для типа геометрии и сделайте таблицу подобным:

CREATE TABLE data (
    geometry geometry,
  valid_from timestamp,
  valid_till timestamp,
  check(valid_till >= valid_from)
);

Postgis может задавать пространственные запросы, поэтому вы можете запросить базу данных для всех геометрий в определенной геометрии (например, запрос для всех геометрий в геометрии, представляющей штат или округ).

Чтобы получить период достоверности, вы должны добавить к этому запросу дополнительное условие для получения только строк, где (valid_from >= now() and valid_till <= now()).

Вам также понадобятся индексы во всех трех столбцах, конечно. На колонке геометрии должен быть пространственный индекс.

Вся информация о пространственных запросах и геометрии и индексах геометрии, которые вы можете найти на сайте Postgis.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top