gpt4 book ai didi

社交网络的 Neo4j 图模型

转载 作者:行者123 更新时间:2023-12-01 07:28:41 24 4
gpt4 key购买 nike

我已经为社交网络创建了一个图形模型,需要一些关于缩放设计的具体建议。请原谅这些问题的 n00bness,但我没有找到很多明确的例子......

注意:状态更新和事件节点/关系是链表 - 最新的条目不断地放在列表的顶部。

  1. 链接列表允许生成新闻提要,但每个用户可能有数百条记录 - 我认为 limit 子句是不够的,即使数据按日期降序排列也是如此。我是否必须有一个单独的链表,它只包含最近的 10 个状态/事件更新)并不断更换该列表上的头部以获得更好的事件提要生成,或者将一个列表正确排序并完成工作(使用限制条款)

  2. 这些节点都有属性(包含内容、ID 等的 json 数据)——“全局”索引如何在这里发挥作用,这样我就可以找到喜欢 Depeche Mode 的用户,而无需等待一生结果?我知道如何将节点添加到索引,只是想知道我是否在这里遗漏了一部分图片..

  3. 安全性 - 登录名和密码..我认为图形数据库可以存储它们,但我认为此时存在安全风险 - 将其保存在 postgres 等中会更好吗?

  4. 您将如何改进此模型以处理可扩展性?想象一下,有 2000 万用户为此而努力......

  5. 假设有 4000 万用户 - 这种模型在可扩展性方面有什么问题?

enter image description here

最佳答案

第 1 部分。

您可以编写 cypher 或 gremlin 查询来执行您想要的操作。请记住,您可以在边缘上向前和向后遍历。给定一个用户,提取他们最近做的十件事的时间应该总是相对恒定的。

第 2 部分。

如果您将乐队表示为某种类型的实体,请索引该属性。然后你将能够拉出该节点并向外遍历以找到所有喜欢该乐队的用户。如果您没有独立的实体,或者它在某种程度上是隐式的,您将需要为各自的图形数据库启用全文搜索。

第 3 部分。

了解有关安全性的更多信息。您唯一要存储的是用户密码的正确散列字符串。到那时,您可以使用任何图形数据库和良好的安全实践。

第 4/5 部分。

一旦您拥有了一个用户,就该担心接下来的一千个用户。

当您拥有一千个用户时,请担心接下来的十万个。

当你有十万的时候,再担心下一个百万。

当您拥有一百万用户时,您就可以开始担心您提出的问题了。

在您至少有 0.1% 的用户/数量要扩展到之前,尝试询问有关如何扩展到特定规模的问题是精神自慰。

关于社交网络的 Neo4j 图模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15714963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com