gpt4 book ai didi

nosql - 跟踪用户关系的最佳数据库是什么?

转载 作者:行者123 更新时间:2023-12-03 20:21:14 25 4
gpt4 key购买 nike

我需要在社交应用中跟踪用户关系,如下所示:

UserA follow UserC, UserD, and UserE
UserZ follow UserC, UserD, and UserE
UserC follow UserA, UserD, and UserE

等等。

首先,我需要一个分区容错的数据库,这样 MySQL 和它的兄弟们就出局了。

我查看了 couchdb,但它会为每个更改创建一个修订版,因此,如果您的文档是这样的:

{
uuid: uuid
name: name,
lastName: lastName
follows: [ uuid1, uuid2, uuid3 ]
}

您将在数据库中进行其他修改

(rev 1)
{
uuid: uuid
name: name,
lastName: lastName
follows: [ uuid1, uuid2 ]
}
(rev 2)
{
uuid: uuid
name: name,
lastName: lastName
follows: [ uuid1 ]
}

空间很大,我知道您可以通过一些手动操作释放它,但问题不会消失。

我查看了 Cassandra,到目前为止它看起来是一个很好的解决方案,它允许插入而没有像 couchdb 那样的额外空间问题。我可以创建一个键空间,然后是一个列,然后是一个存储关系,如下所示:

keyspace:{
column:{
...
uuidT:{ uuidA: timestamp, uuidB: timestamp, uuidZ }
uuidF:{ uuidA: timestamp, uuidB: timestamp, uuidZ }
uuidH:{ uuidA: timestamp, uuidB: timestamp, uuidZ }
...
}
}

但我想知道图形数据库是否最适合这个。

编辑:

在浏览答案后,我发现这个页面有助于选择数据库。 http://nosql.findthebest.com/

最佳答案

CouchDB 是一个离线数据库。

我建议研究一下 graphDB,我想到了 neo4j。几周前我在多伦多的 Mozilla 实验室被介绍给它,那里的人告诉我这是最不痛苦的 graphDB 启动运行(你可以 apt-get/brew 它)。您可以在其中建立任意关系,但它不会分区。如果你想要一个你可以依赖的数据库并且你想做任意关系,也许Titan值得一看。

关于nosql - 跟踪用户关系的最佳数据库是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11568935/

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