Скажем, у меня есть две лиги L1 и L2. Каждая лига может иметь несколько раундов, таких как плей-офф, четвертьфиналы, полуфиналы и финалы. Более того, мне также нужно представить happens_after факт, как четвертьфиналы происходит после плей-офф, полуфинал происходит после четвертьфиналов и финалов после полуфинала.Дизайн графического объекта (Neo4j): единый узел с несколькими отношениями или новыми узлами для каждого события?
Вопросы
Если мой график один узел для каждого из этих раундов, и каждая лига должна связать эти раундов? Таким образом, мы просто создаем новые отношения (например, оба L1 и L2 будут иметь отношение к Playoffs), но есть только один узел Playoff. Тем не менее, это ограничивает отношения happens_after, потому что в некоторых лигах может быть больше раундов (например, раунд 2 может пройти до четвертьфиналов). Есть ли лучший способ представить это?
Использование футляры
- Нужно быть в состоянии найти все раунды данной лиги.
- Нужно иметь возможность найти заказ всех раундов данной лиги и даты каждого из них.
EDIT
Я добавил фотографию к своему сообщению. L1 имеет 2 уровня (плей-офф и раунд 2), но L2 имеет два «разных» уровня (плей-офф, а затем четвертьфиналы). Как вы пишете запрос, чтобы определить все уровни для данной лиги здесь? –
Вопрос в том, следует ли делиться круглыми узлами или создавать их в каждой лиге. Совместное использование делает запрос сложным, но уменьшает количество узлов (на самом деле это не проблема). Создание тогда для каждой лиги делает вещи простыми. –
Если количество лиг ограничено, вы можете закодировать лигу в «следующей» зависимости, используя «next_l1» и «next_l2». Также в лиге должно быть отношение next_l1/l2 к первому раунду (palyoff). Запрос, чтобы получить все раунды во временном порядке, следующий: 'start l = node: league (лиги: 'L1') соответствует l - [: NEXT_L1 *] -> n return n' –