以下是我需要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存储可能的“流”存储库
我的设计是对的吗?
如果这看起来不正确,请欣赏您对正确设计的指导。
答案 0 :(得分:0)
所以你的工作"是公司吗?
我愿意:
(:Person)-[:WORKS_IN]->(:Employment)
(:Employment)-[:HAS_CATEGORY]->(:Category)-[:NEEDS_SKILLS]->(:Skill)
(:Person)-[:HAS_SKILLS]->(:Skill)
(:Employment)-[:IN_COMPANY]->(:Company)