Правильный дизайн схемы Neo4j SDN5 для производительности - @RelationshipEntity vs @NodeEntity

У меня есть следующие сущности узла SDN5:

@NodeEntity
public class Decision {

    @Index(unique = true)
    private Long id;

}

@NodeEntity
public class Characteristic{

    @Index(unique = true)
    private Long id;

}

В соответствии с потребностями моего бизнеса, я могу иметь сотни тысяч Decision и десятки или сотни Characteristic узлы.

Мне также нужно разместить значение на каждом Decision для каждого Characteristic узлы. В некоторых случаях я могу иметь несколько значений (одинаковых типов) между Decision и `Характеристика.

Я вижу 2 возможных пути, как это может быть достигнуто:

1. Место value собственность в @RelationshipEntity между Decision а также Characteristic. In case of multiple values(of the same types) between the sameРешениеandХарактеристика value свойство будет содержать массив.

2. Ввести новый Value@NodeEntity и добавить два @Relationship за Decision а также Characteristic. In case of multiple values(of the same types) between the sameРешениеandХарактеристика - необходимое количество отдельных Value узлы будут созданы.

Мой самый большой критерий - это выполнение запросов в реальном времени по запросу пользователя - фильтрация Decisions по значениям на Characteristics,

Принимая это во внимание - какой путь выбрать для создания схемы описанной системы - 1 или же 2?

Я знаю что свойства @RelationshipEntity не поддерживает индексы схемы (имитация этого поведения может быть добавлена ​​с помощью ручного индекса APOC по свойствам отношений). С другой стороны, @NodeEntity поддерживает индексы схемы для свойств, но добавление дополнительного узла Value увеличивает количество связей для хода во время запроса.

Кроме того, в случае нескольких значений между одинаковыми Decision а также Characteristic in case of the solution with@RelationshipEntityproperty must be represented as array property on@ RelationshipEntity`, и я не уверен, как индексировать массивы там..

Посоветуйте, пожалуйста, как правильно спроектировать такую ​​схему и какой путь выбрать.

0 ответов

Другие вопросы по тегам