我正在尝试建模树结构的版本控制系统.这是一个例子:
树的第1版:
的(a)< - :(B) - [belongs_to的]
的(a)< - :(C) - [belongs_to的]
(d)< - [:belongs_to的] - (E)
树的第2版:
的(a)< - :(C) - [belongs_to的]
(d)< - [:belongs_to的] - (b)中
(d)< - [:belongs_to的] - (E)
因此,在版本2中,我将B移动到D.实际上我现在可以通过创建版本节点并将其与所有包含的节点相关联来实现此目的,并在每个BELONGS_TO关系上给出时间属性.所以图表看起来像这样:
版本1
MERGE (a:COMPONENT {name:'a'})
MERGE (b:COMPONENT {name:'b'})
MERGE (c:COMPONENT {name:'c'})
MERGE (d:COMPONENT {name:'d'})
MERGE (e:COMPONENT {name:'e'})
MERGE (version:VERSION {createdOn:'16-4-2015 12:17:00'})
MERGE (version)-[:CONTAINS]->(a)
MERGE (version)-[:CONTAINS]->(b)
MERGE (version)-[:CONTAINS]->(c)
MERGE (version)-[:CONTAINS]->(d)
MERGE (version)-[:CONTAINS]->(e)
MERGE (a)<-[:BELONGS_TO {createdOn:'16-4-2015 12:17:00'}]-(b)
MERGE (a)<-[:BELONGS_TO {createdOn:'16-4-2015 12:17:00'}]-(c)
MERGE (d)<-[:BELONGS_TO {createdOn:'16-4-2015 12:17:00'}]-(e)
RETURN *
Run Code Online (Sandbox Code Playgroud)
版本2
MERGE …Run Code Online (Sandbox Code Playgroud)