2017-04-21 88 views
0

我是neo4j的新手,尝试对数据库建模数据库包含4个表格,它采用csv格式 表1(员工详细信息) 员工(emp_no,birth_date,first_name,last_name,gender,hire_date )neo4j中的数据建模

表2(详细询问谁是maneger该部门) dept_maneger(EMP_NO,DEPT_NO,FROM_DATE,TO_DATE)

表3(详细介绍一下部门) 部门(DEPT_NO,DEPT_NAME)

表4(关于哪个雇用的细节你属于哪个部门) dept_emp(emp_no,dept_no,from_date,to_date)

我创建了节点,但我想在部门节点员工节点之间使用从日期到日期的关系。我怎样才能做到这一点。

回答

0

您没有提供有关您的neo4j数据模型的信息。以下是您可以使用的简单数据模型的示例。

您可以使用标有Employee(针对所有员工,包括经理)和Department的节点。例如:

(e:Employee {id: 987, birthdate: 222, firstName: 'Fred', lastName: 'Smith', gender: 'male', hired: 12}) 
(manager:Employee {id: 221, birthdate: 111, firstName: 'George', lastName: 'Jones', gender: 'male', hired: 10}) 
(d:Department {id: 324, name: 'Accounting'}) 

这里有关系的例子(与类型WORKS_IN):

所有位置
(e)-[:WORKS_IN {from: 123, to: 456}]->(d) 
(manager)-[:WORKS_IN {from: 234, to: 567, isManager: true}]->(d) 

的开始和结束日期被存储在WORKS_IN关系。如果某人为非经理工作的同一部门,然后成为经理,他/她将有一个新的WORKS_IN关系与isManager=true财产(和促销日期的价值from值)添加。

+0

我已上载从CSV数据和创建的节点和索引 –

+0

使用周期性COMMIT带有头部 LOAD CSV FROM “文件:///dept_manager.csv” AS行 MATCH(EMP_NO:员工{EMP_NO:row.emp_no} ) MATCH(dept_no:departments {dept_no:row.dept_no}) MERGE(Employee) - [:belongs_to {from_date:row.from_date,to_date:row.to_date}] - >(departments); –

+0

我试过这个关系,但它不起作用 –