【发布时间】:2013-03-20 08:45:59
【问题描述】:
为单个用户允许数千个关系的最佳设计是什么?
(在社交网络应用程序上工作 - 如果您知道任何“通用”社交网络设计,请指出它们......会有所帮助)
看到这张图片 - 状态更新代表一个链接列表,而兴趣代表杂项兴趣。对于单个用户,这些兴趣可能真的会爆炸到数千个节点 - 这不会导致某种超级节点问题吗?
图一
为这些兴趣设置一个类别或“标题”节点,然后将这两个兴趣归入该类别节点会是更好的设计吗?我认为,当您最初处理用户节点和几个关系/标头节点时,它可能更有效,而不是与用户节点直接相关的数千个节点。
示例:
图 2
用户
|
+ 兴趣+
+----- 兴趣
+----- 兴趣
+----- 等等...
而且兴趣不应该也有“子标题”类别节点,比如“书”、“电影”、“产品”之类的:
**FIGURE 3**
User
|
+ interests+
+ books+
| + interest
| + interest
| + interest
+ movies+<br>
+ interest
+ interest
+ interest
(显然我是 Neo 的 n00b)
这是我的问题:
哪种模型最适合高性能、可扩展、类似 facebook 的系统 - 一种没有分类,一种有分类?牢记性能..
兴趣可能不会总是激增到数千个节点 - 可能是十几个或 100 个 - 添加类别设计是否会增加太多开销?考虑尝试寻找和你一样喜欢的朋友 - 添加类别会增加太多开销吗?
后一种图像(具有类别和子类别节点的图像)是否只是看起来更好,但对性能、组织等没有任何作用?
是否应该只有一个类别属性来描述它所在的类别,而不是类别节点?在索引上添加具有类别属性的节点是否与添加类别节点一样好?
关于问题 4,在索引上添加具有类别的节点会是更好的解决方案吗?
这种结构有什么缺点?它们有什么真正的优势吗?
【问题讨论】:
标签: neo4j