首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有时间框架关联的社会图表数据的体系结构?

具有时间框架关联的社会图表数据的体系结构?
EN

Software Engineering用户
提问于 2012-10-08 18:10:19
回答 1查看 1.4K关注 0票数 2

我正在向现有的应用程序中添加一些“社会性”类型的功能。有有限的节点和边缘类型#。总的来说,数据本身相对较小(每种类型的节点为50,000至70,000 ),它们之间将有许多边(关系)(几乎所有方向的)。

我知道,用SDF商店(如BrightstarDB)或类似微软的三位一体(或实际上是许多noSQL选项)来表示这一点是相对容易的。

我认为,让这成为一个独特的用例的是,每个关系都有一个与其相关的时间框架(开始日期和结束日期)。现在,我正在考虑将其存储在关系结构中,并处理“遍历图”所带来的麻烦,但我正在寻找一种更好的方法(在数据结构和服务器方面)的建议:

代码语言:javascript
复制
Column
================
From_Node_ID  
Relationship
To_Node_ID
StartDate
EndDate

欢迎任何建议或想法。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2012-11-07 15:26:21

你应该去看看Neo4j-开源图形数据库。这是一个成熟的、得到充分支持的项目。它有一个很好的书面更新的文件。它基于java,但是有几个用于ruby、jruby、php、python、c#的客户端库.它作为嵌入式( jar文件)或服务器工作(您可以使用基于REST的结构通过HTTP连接和操作)。最后,它是基于磁盘的事务性的。

在Neo4j中,可以将属性分配给节点和关系。这意味着,在您的示例中,您可以将两个节点与一个具有名为"StartDate“和"EndDate”属性的关系或任何您希望的其他属性连接起来。

例如,如果将用户作为节点,则可能有一个名为"interested_in“的关系,您可以将UserA与UserB连接到关系"interested_in”,并将StartDate指定为创建关系的日期,稍后您可能会指定EndDate属性作为"interested_in“关系结束的日期。

它看起来可能是:

代码语言:javascript
复制
UserA -[interested]-> UserB
      StartDate:20121102
       EndDate:20121107

用户(我指的是节点)可以通过向来自现有数据库的Neo4j节点提供"id“属性来连接到现有的数据库。或者您可以复制所有或多个属性(如姓名、姓氏、出生日期等)。对于Neo4j中的节点,但这一次您可能需要在每次数据存储中发生更新时同步Neo4j中的用户和数据库。

Neo4j文档中有几个示例数据模型

还有InfiniteGraph,它类似于Neo4j,被称为“分布式图形数据库”,但我对它没有任何经验。对于您的情况(每种节点类型为50,000到70,000 ),Neo4j将是一个完美的匹配,它支持多达数十亿个节点和关系。

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

https://softwareengineering.stackexchange.com/questions/168004

复制
相关文章

相似问题

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