Как хранить места в ArangoDB? - PullRequest
0 голосов
/ 01 мая 2019

Я создаю веб-приложение, в котором мне нужно хранить большое количество уникальных адресов в виде узлов в ArangoDB .

Одним из подходов было бы использование модели иерархического графа: страна узел, связанный с округом узлами, округ узлами, подключенными к городам и города , связанные с точными адресами с атрибутами GeoJSON.

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

Какой метод будет более полезным? Я буду выполнять запросы, чтобы найти местоположения в данном диапазоне или местоположения в данном городе.

1 Ответ

0 голосов
/ 02 мая 2019

Что ж, давайте посмотрим, что вам понадобится в плане коллекций для создания вашего приложения:

  1. Коллекция, хранящая места, которые вы хотите использовать в своем приложении. Это будет ваша основная коллекция и будет содержать среди прочего объект местоположения на карте {долгота: XXX, широта YYY}

  2. Поскольку вы, вероятно, хотите, чтобы люди могли выполнять поиск по городу, стране и т. Д. Вам нужна либо коллекция по типу местоположения (город, страна и т. Д.), Либо таблица со всеми местоположениями и типом " "флаг, указывающий, где находится город или страна и т. д. ...

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

К этому моменту вы, вероятно, заметили, что мы в основном построили иерархию, которую в Аранго я бы построил как минимум одну коллекцию вершин Places, коллекцию вершин Locations и коллекцию ребер locationContains. Это позволило бы действительно быстро искать и является одной из причин, почему графические базы данных были первоначально созданы.

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

...