Дизайн таблицы для пространственно-временных данных - PullRequest
4 голосов
/ 03 мая 2011

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

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

Спасибо.

1 Ответ

3 голосов
/ 03 мая 2011

Я бы использовал PostGIS (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.

...