Время моделирования в графовых базах данных - PullRequest
0 голосов
/ 10 февраля 2020

Я прочитал в документации Neo4j раздел о том, как сделать запросы, которые зависят от времени, более эффективными:

Один из способов моделирования данных и отношений, определяемых временем c это путем включения данных в тип отношения. Поскольку Neo4j оптимизирован специально для обхода взаимосвязей между сущностями, вы часто можете повысить производительность запросов, указав дату в качестве типа взаимосвязи и обходя только определенные датированные взаимосвязи.

enter image description here

Но мне было интересно, используя эту технику, вам придется повторять одни и те же вещи в любое время, когда вы хотите сделать запросы, основанные на времени, более эффективными. Например, если вы хотите запросить сообщения, созданные указанным пользователем c на указанную дату c, вы должны добавить (аналогично AirportDay) что-то вроде UserDay.

У меня вопрос, есть ли возможный способ универсального моделирования времени на вашем графике, чтобы время стало основной точкой входа для запроса событий и действий на графике.

1 Ответ

1 голос
/ 10 февраля 2020

На вашем графике нет универсального ответа на время моделирования. Это зависит от ваших вариантов использования.

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

Вы также можете хранить время как свойство узла и индексируйте его.

А затем есть опция временного дерева https://graphaware.com/neo4j/2014/08/20/graphaware-neo4j-timetree.html

Подводя итог, это зависит от ваших случаев использования - обычно нет необходимости преждевременной оптимизации .

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