用户/类别/工作节点的Neo4J图形架构设计

时间:2014-10-16 06:54:53

标签: database-design graph neo4j cypher

以下是我需要Neo4J Graph Design Gurus的帮助:

问题:

我们在系统中有以下节点。

NODE TYPE 1: USER{id, name, dob, address, interests (fk: CATEGORY{id})}
NODE TYPE 2: CATEGORY{id, name, Specialities:Array of }
NODE TYPE 3: WORK{id, type, name, address}

 If (USER) -> [SPECIALIZES {stream:'computers'}] -> (WORK)

关系'SPECIALIZES'属性'stream'实际值取决于USER所属的CATEGORY。

即。每个CATEGORY可以有一个Streets的BAG,USER可以在一个/多个“流”中使用SPECIALIZES

每次在USER和WORK之间建立关系[Specializes]时,“steam”的值必须是来自NODE的有效值:CATEGORY.Specialities.array [index]。挑战是如何在Neo4J中为每个CATEGORY存储可能的“流”存储库

我的设计是对的吗?

enter image description here 如果这看起来不正确,请欣赏您对正确设计的指导。

1 个答案:

答案 0 :(得分:0)

所以你的工作"是公司吗?

我愿意:

(:Person)-[:WORKS_IN]->(:Employment)
(:Employment)-[:HAS_CATEGORY]->(:Category)-[:NEEDS_SKILLS]->(:Skill)
(:Person)-[:HAS_SKILLS]->(:Skill)
(:Employment)-[:IN_COMPANY]->(:Company)

enter image description here