1
Предположим, у меня есть простые отношения, какNeo4j: Как моделировать свойства отношений, которые являются узлами?
CREATE (a:Company { name:"Apple" })-[:BUYS]->(b:Company { name:"Beats" })
Теперь я хочу, чтобы собирать метаданные о :BUYS
отношения - которые пользователь создал эту отношения и каковы источники, которые подтверждают это. Для этого я создаю новый узел и подключить другие узлы к нему:
MATCH (a:Company { name:"Apple" }),(b:Company { name:"Beats" })
CREATE a-[:IS_BUYER]->(ab:Buyout { name:"Apple-Beats" })<-[:IS_SELLER]-b
MATCH (u:User { name:"Fred" }),(n1:Newspaper { name:"Washington Post" }),
(n2:Newspaper { name:"Financial Times" }),(ab:Buyout { name:"Apple-Beats" })
CREATE u-[:CREATED]->ab<-[:CONFIRMED_BY]-n1,ab-[:CONFIRMED_BY]->n2
Теперь у меня есть несколько вопросов:
- Поскольку в большинстве случаев запросы заинтересованы только в отношениях
:BUYS
, я оставляю что неповрежденные и получить лучшую производительность для этих запросов, не так ли? - Есть ли другие, лучшие способы моделирования этого?
- Что такое хороший способ создания имени/идентификатора для материализованного узла?
- Есть ли способ каскадировать удаление отношения
:BUYS
к соответствующему узлу:Buyout
?