首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户图形数据库

用户图形数据库
EN

Stack Overflow用户
提问于 2013-12-14 19:30:14
回答 1查看 277关注 0票数 0

在我的应用程序中,我需要将用户分配到组中,每个用户都需要一个管理器(同时也是一个用户的经理也可能有一个管理器)。

该应用程序需要查询才能知道某个管理器的最大深度(换句话说,从管理器到由该人管理的所有人员的最长路径的长度)。此外,它还需要能够找到同一组中的用户(一个组也可以是另一个组的成员)。

到目前为止,整个应用程序已经在MySQL数据库中使用JPA建模。但是,它是作为SOA设计的,因此更改处理用户(用户服务)的服务的底层数据存储不会太昂贵。

有什么不需要图形数据库的方法吗?如果需要一个图形数据库,我是应该将所有用户信息存储在图中,还是只存储适当的关系?

EN

回答 1

Stack Overflow用户

发布于 2013-12-16 01:08:17

如果你的基本模型是

代码语言:javascript
复制
(group:Group)<-[:IN_GROUP]-(user:User)
(man:User)-[:MANAGES]->(sub:User)

你可以:

代码语言:javascript
复制
MATCH (manager:User {name:"Colin"})-[:MANAGES*]->(u:User)
RETURN u

对于第二个查询

代码语言:javascript
复制
MATCH (manager:User {name:"Colin"})-[:MANAGES*]->(u:User)
      (u)-[:IN_GROUP]->(g)<-[:IN_GROUP]-(u2)
RETURN u.name as user, g.name as group, collect(u2.name) as colleagues

您可以将所有用户信息存储在图表中,但不必这样做。为你的用例做最简单和最好的事情。

如果没有图形数据库,您将编写痛苦的重连接SQL查询,尤其是。用于可变长度关系。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20587324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档