gpt4 book ai didi

nosql - neo4j - 图形数据库和关系数据库?

转载 作者:行者123 更新时间:2023-12-04 05:41:03 25 4
gpt4 key购买 nike

这是一个关于最佳实践的问题,我知道这样做有很多不同的选择,但我希望您对如何解决这个问题提出意见。请认为性能在此系统中至关重要,换句话说,可扩展性。

我最近发现了图形数据库的奇迹,所以我想出了一个理论情况,一家公司想要管理它的客户关系,为了做到这一点,他们将使用 Neo4j,它非常棒,并且允许真正出色的管理客户、不同员工及其关系,这一切都很棒,但是公司现在想要创建一个需要身份验证的基于 Web 的界面,neo4j 数据库中的任何人都应该能够登录系统以查看他们如何与公司数据库中的其他人相关联,因此每个用户都必须有一个与其姓名相关联的密码/电子邮件/ID。

所以我的问题是,在这种情况下,最好将 password_hash/password_salt/id/email 存储在 mysql 数据库中,然后根据节点在 mysql 数据库上查找它。或者最好将 password_hash/password_salt/id/email 存储在节点内的哈希表中。

此外,每个商店都有 1000 种产品,它们可以存储在图形数据库中,或者我可以将产品存储在 mysql 数据库中,然后在那里查找产品,并在那里进行更改,因为这些产品彼此不相关,所以将它们存储在图形数据库中没有意义,所以不应该将它们存储在那里以提高性能吗?

所以我的问题归结为:对于大型项目来说,使用图形数据库和更常见的 rdms 数据库(如 mysql)是否最好?如果不是,那么您从什么时候开始使用这两个数据库系统?

对于我缺乏有关数据库术语的知识,提前道歉。

最佳答案

图 DB 主要用于维护关系。如果应用程序具有图形数据库,这并不意味着应用程序需要将所有内容存储在图形数据库中。

Graph 上的每个节点请求都在内存中,因此如果你的节点中有不必要的属性,它会变得臃肿,可能会使事情变慢并占用更多内存。我通常决定哪些需要进入图形,哪些需要进入数据库简单的规则。

高级属性(定义关系和定义节点的其他重要属性)在图形中,而附加信息在 RDMS 中。

例如在 FB 中可能是 FBID,Name 进入 Graph,因为它定义了一个节点与另一个节点的关系。但是当用户点击某人的 facebook ID 时,他/她会看到其他用户的 DOB、年龄、大学。所有这些都可以进入 RDBMS。

PS:RDMS还有一个优势,可以用于快速分析。我知道图形也可以做到这一点,但我不确定它是否像 RDBMS 一样可扩展和简单。

这种方法的缺点是:您需要维护两个 DBS。

关于nosql - neo4j - 图形数据库和关系数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310229/

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