Модель данных Neo4J Dynami c - PullRequest
0 голосов
/ 07 апреля 2020

Newb ie оповещение о мире графиков и графического моделирования. Играя с Neo4J в качестве собственной базы данных графов.

Я работаю над сценарием использования при разработке общего продукта (домен agnosti c). Это может быть «Персона», это может быть «Животное», это может быть «Автомобиль» и т. Д. И т. П.

Я бы не хотел моделировать их (и кодировать преобразование) каждый раз для нового домен. Это делает продукт немного жестким.

Я думаю о том, чтобы иметь общую графическую модель c, моделируя Node как «Node» и Connection как «Connection» с целым набором свойств. в них различать guish и использовать их в зашифрованных запросах.

Мне кажется, что это разбавляет моделирование графических данных, но обеспечивает большую гибкость. Это компромисс здесь? Любые рекомендации?

Есть ли какие-либо последствия для производительности в этом подходе, так как я читал в нескольких местах, что всегда моделировать определенные отношения c гораздо лучше, чем моделировать их как единое отношение с различными свойствами. Это правильное утверждение? Конечно, последнее, что я хотел бы сначала загрузить всю сеть (миллионы) в память neo4j, и позволить neo4j отфильтровать ее после того, как она будет основана на свойствах. Или это работает умнее, индексируя свойства?

1 Ответ

0 голосов
/ 07 апреля 2020

Вся экосистема neo4j разработана и сильно оптимизирована для нескольких меток узлов и нескольких типов отношений.

В качестве одного примера: сервер ведет статистику о количестве экземпляров каждой метки и использует эти знания для оптимизации некоторых операций Cypher. Если вы решите использовать одну метку для всех узлов (или даже вообще не будете использовать какие-либо метки), это иногда заставит Cypher Planner создать очень неэффективный план.

Конечно, как и для всех В системах есть вещи, которые можно улучшить в neo4j. Но я бы посоветовал вам получить больше опыта с neo4j, прежде чем утверждать, что использование его в том виде, в котором оно предназначено, «немного жестко». Вы можете быть приятно удивлены.

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