Tinkerpop: создание вложенных свойств - PullRequest
1 голос
/ 14 февраля 2020

Я хочу создать вершину метки foo, которая содержит свойство child. Дочернее свойство будет иметь два свойства A, B. Дочернее само по себе может содержать больше вложенных дочерних элементов.

Если вершина foo удалена, все ее свойства, включая дочерние свойства, должны быть удалены. Моим шаблоном запроса будет запрос всех вершин метки foo со свойством A = 'bar'

. Это легко представить представлением дочернего элемента в виде вершины вместо свойства, но затем дочерний элемент должен быть удален с помощью делать dfs / bfs, происходящие из вершины foo. Это дорогостоящее дело. Если дочерние объекты сохраняются как свойства, операция удаления будет сохранена из dfs / bfs.

Как создать вложенные свойства и как я могу запросить их, используя apache tinkerpop. Есть ли какая-либо другая модель данных, которую я могу использовать для снижения стоимости запроса.

1 Ответ

3 голосов
/ 14 февраля 2020

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

Удаление дочерней вершины не должно быть дорогой операцией:

g.V(child_id).emit().repeat(out()).drop()
...