【发布时间】:2017-09-14 18:44:17
【问题描述】:
我正在为我当前正在构建的应用程序建模一个图表,其中我有 n 个用户连接到 n 个用户,我也有 n 个帖子,可以是 被 n 个用户点赞。所以结构看起来像这样,对于给定的用户,
如果一个用户喜欢一百个 Post 节点,它会为该节点生成 100 条边(relationships),当 post 为 n 时,边也将是 n。 所以一个用户将连接到 n 个用户、n 个帖子和 n 个未来的节点类型。
所以使用中间节点从而减少给定节点的边,看起来像这样,
用户有一个名为 Collection 的中间节点,它将连接到喜欢,因为这是一个属性图,我可以向中间节点添加一个属性并使其表现得像来自用户的连接(类似于, Likes.username = User.username)
这将类似于这个问题 (Graph database modelling: Should i use a collection node to avoid to many rel on a node)
我的想法是
这种中间连接节点的方式可以将垃圾与主节点隔离,从而可以加快自定义算法的速度。
我的问题,
- 什么是可扩展的最佳解决方案?
- 为什么我应该优先考虑这个解决方案?
【问题讨论】:
标签: database-design neo4j architecture orientdb graph-databases