这似乎是一个有线的问题 - 也许是.
例:
我有用户,国家和角色.用户在一个或多个国家/地区担任一个或多个角色.
Sebastian -> Germany -> TaskVerifier
-> QuestionApprover
-> Austria -> TaskVerifier
-> Worker
-> Whatever
Run Code Online (Sandbox Code Playgroud)
各种角色有不同的权限......
我该如何建模呢?(例如在neo4j中)
使用country属性设置用户和角色之间的关系似乎不是解决方案,因为我还需要其他关系中的国家/地区节点.
THX提前!
您需要能够在国家/地区和角色节点之间粘合的东西.在我的例子中,我打电话给它Permission.
这是一个用于创建虚拟图形的小型cypher脚本:
// Country
CREATE (c1:Country { name:'Germany'}
CREATE (c2:Country { name:'Austria'}
// Roles
CREATE (r1:Role { name:'TaskVerifier'})
CREATE (r2:Role { name:'QuestionApprover'})
CREATE (r3:Role { name:'Worker'})
CREATE (r4:Role { name:'Whatever'})
// Users
CREATE (u:User{name:'Sebastien'})
CREATE (p1:Permission)
CREATE (u)-[:HAS_PERMISSION]->(p1)
CREATE (r1)<-[:HAS_ROLE]-(p1)-[:FOR_CONTRY]->(c1)
CREATE (p2:Permission)
CREATE (u)-[:HAS_PERMISSION]->(p2)
CREATE (r2)<-[:HAS_ROLE]-(p2)-[:FOR_CONTRY]->(c1)
CREATE (p3:Permission)
CREATE (u)-[:HAS_PERMISSION]->(p3)
CREATE (r1)<-[:HAS_ROLE]-(p3)-[:FOR_CONTRY]->(c2)
CREATE (p4:Permission)
CREATE (u)-[:HAS_PERMISSION]->(p3)
CREATE (r3)<-[:HAS_ROLE]-(p4)-[:FOR_CONTRY]->(c2)
CREATE (p4:Permission)
CREATE (u)-[:HAS_PERMISSION]->(p4)
CREATE (r4)<-[:HAS_ROLE]-(p4)-[:FOR_CONTRY]->(c2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30 次 |
| 最近记录: |