twitter - 构建 Twitter 用户数据库

标签 twitter graph relational-database neo4j

我正在构建一个简单的 Twitter 图表,并且正在与团队的其他成员讨论如何实现它。

由于性能和简单性,我认为 A 选项是最好的,但其他成员(项目负责人特别喜欢 C)由于对平台缺乏经验而不相信。

我从未在生产应用程序中使用过图表,因此当 PL 开始将其与 C 选项进行比较时,我没有强有力的论据。

那么我问你,根据你的经验,你会选择哪个选项?

元素:

  • Twitter 用户
  • 列表
  • 兴趣

A) neo4j 图

节点:

  • 推特用户
  • 列表
  • 兴趣

关系:

  • 关注(用户1,用户2)
  • member_of(用户,列表)
  • interested_in(用户,兴趣)

B) 相同的图表,但分成较小的图表以提高性能。

C) 简单的 neo4j 图表和用于查询数据的关系数据库。

.图:

节点:

  • 推特用户

关系:

  • 相似度(用户1,用户2)

.关系数据库:A的节点将转换为表,并且 关系将通过多对多键来完成。

最佳答案

根据您的描述,我个人看不出选择 B 和 C 的任何理由。您描述的场景对于 Neo4j 等图形数据库来说看起来非常完美。

如果您选择选项 C,您将拥有大量代码,这些代码仅在两个数据库之间进行 ID 转换和同步。您最好有充分的理由使用这样的两家商店。

关于twitter - 构建 Twitter 用户数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16794605/

相关文章:

c# - 公共(public) API 如何管理负载?

algorithm - 如何在必须通过特定节点的有向图中找到最短路径?

php - Codeigniter 2 和 Twitter 集成

java - Twitter 连接的最佳 Java 示例

haskell - 图中的可达节点

algorithm - Dijkstra 算法 - 父节点?

database - 规范化中第四范式的定义

mysql - 对于电子商务网站来说,理想的 MySQL 事务隔离模式是什么?

mysql:选择所有被通知的人

Java 拆分句子