我正在构建一个简单的 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/