如何使用图形数据库设计集合?

时间:2017-04-12 16:12:53

标签: database-design neo4j architecture orientdb graph-databases

我正在尝试使用图形数据库设计一个收集系统。用户可以创建多个帖子集合。我无法决定两种给定设计中的哪一种可扩展且良好。

所以这是第一个设计,

  

用户节点(顶点)与集合节点(顶点)有关系(边缘) HAS_COLLECTION

enter image description here

第二个设计

  

用户节点(顶点)与集合节点(顶点)相关,集合节点(顶点)与集合节点(顶点)与关系(边缘) HAS_COLLECTION

enter image description here

所以我的问题是,

  1. 这两个设计中的哪一个很好且可扩展?
  2. 我为什么要选择另一个?
  3. 在特定场景中可以使用哪些关系动词而不是设计中的动词?

2 个答案:

答案 0 :(得分:3)

1& 2:除非您有特定原因需要CREATED关系和Collections节点,否则应省略它们。通常,保持路径缩短会更好,因为您的查询会更简单,更快速,并且需要更少的存储空间。

3:姓名属于个人偏好,但对我而言HAS_POST会比COLLECTED更清晰。

答案 1 :(得分:2)

1& 2取决于用例,即如果实际存在集合,则用(2)否则(1)

前 - 如果用户维护一组收藏,那么我更愿意(2)。前 - 如果用户已经开始收集体育,天文学,科学技术,政治,电影的帖子。与(2)设计一起使用是有意义的。 “post”的搜索查询会更快(仅仅说“体育”它将过滤掉所有非体育帖子。

相关问题