gpt4 book ai didi

mongodb - 与用户共享文档

转载 作者:IT王子 更新时间:2023-10-29 06:12:14 27 4
gpt4 key购买 nike

我必须选择一个数据库来实现共享系统。

我的系统会有用户和文档。我必须与几个用户共享文档。


例子:有2个用户,有1个文档。

因此,如果我必须与两个用户共享一份文档,我可以采用以下可能的解决方案:

我目前使用的方法是使用 MySQL(我不想使用它):

Relational Databases (MySQL)
Users Table = user1, user2
Docs Table = doc1
Docs-User Relation Table = doc1, user1
doc1, user2

我想使用这样的东西:

NoSQL Document Stores (MongoDB)
Users Documents:
{
_id: user1,
docs_i_have_access_to: {doc1}
}
{
_id: user2,
docs_i_have_access_to: {doc1}
}
Document's Document:
{
_id: doc1
members_of_this_doc: {user1, user2}
}

而且我还不知道如何在像 Redis 这样的键值存储中实现。

所以我只想知道,我上面给出的 MongoDB 方式是否是最佳解决方案?还有其他方法可以实现吗?也许使用另一个数据库解决方案?我是否应该尝试使用 Redis 来实现它?

我应该选择哪个数据库和哪种方法最适合共享数据,为什么?

注意:我想要高度可扩展和持久的东西。 :D

谢谢。 :D

最佳答案

实际上,您需要表示多对多关系。一个用户可以有多个文件。一个文档可以在多个用户之间共享。

请参阅我之前对此问题的回答:how to have relations many to many in redis

对于 Redis,用集合数据类型表示关系是一种很常见的模式。对于这种数据模型,您可以获得比使用 MongoDB 更好的性能。作为奖励,您可以轻松高效地找到哪些用户拥有给定的共同文档列表,或者哪些文档由一组给定的用户共享。

关于mongodb - 与用户共享文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023749/

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