Как бороться с большим количеством ребер из нескольких вершин в графе db - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь смоделировать график на основе больших данных РСУБД. Причина, лежащая в основе графика db, заключается в том, чтобы ответить на множество вопросов, основанных на отношениях, чтобы обеспечить возможность обхода между различными узлами и производительностью. При моделировании этого я замечаю, что немногие узлы имеют большой набор исходящих ребер.

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

Это оповещение? Есть ли лучше какие-либо принципы проектирования, чтобы превентивно проектировать это по-другому?

1 Ответ

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

Предположим, что ваша текущая модель данных выглядит примерно так:

(:Category {name: 'Toy'})<-[:IS_A]-(:Product {id: 123})

и что некоторые узлы с меткой Category имеют огромное количество связанных Product с..

Чтобы уменьшить количество связей и немного упростить ваши запросы, вы можете рассмотреть возможность удаления узлов Category и вместо этого добавить дополнительную метку к каждому узлу Product.Например:

(:Product:Toy {id: 123})

С помощью этой новой модели данных вы можете напрямую найти все продукты Toy, не обращаясь к каким-либо отношениям (например, MATCH (t:Toy) RETURN t).

...