在NoSQL与SQL中使用关系

时间:2010-12-15 23:46:50

标签: mongodb database nosql

首先,我是NoSQL概念的新手。

我基本上开发了一个API,允许用户在我们的数据库中创建和存储对象。这将通过各种前端程序实现,并导致程序保存每个用户的私人数据,程序共享数据和数据挖掘 - 访问许多用户的相关数据。用户可以拥有许多对象,我们不会限制对象是什么或如何访问它(程序将负责确保它们之间的通信),因此可能的对象将是其他对象的数组等。

对于具有各种权限的用户,重要的是PER OBJECT ACL。我还期待诸如物品标签之类的东西等。

我能想象的各种查找是:

  • direct - 用户要求提供文件
  • 列出我的 - 作为用户我能看到什么
  • 列表拥有 - 我创建了哪些对象
  • list tagged - 我可以访问的'appX'标记了哪些对象。 并且不可避免地会有很多其他人

我包括上面的内容以显示我正在考虑的场景。虽然目前我不太关心可扩展性,但我喜欢NoSQL架构免费概念,以便应用程序可以查询我不知道的对象数据。 / user / obj / 1/2/3我所知道的只是用户有obj。

然而,情景似乎与我有很大的关系。用户有obj,obj有权限,权限有用户和attrs等。我很确定我可以在RDMS基础上构建它只有很多序列化对象和json数据存储,但它似乎是一个主要的NoSQL项目(和我听过很多,想尝试一下。)

所以问题:

  • 这是NoSQL的工作吗?
  • 我如何有效地在对象之间创建这样的链接(正在考虑mongodb),并且通常有关于如何在NoSQL中建模数据以处理此类事情而没有过多查找的任何文档/教程(希望从RDMS的角度来看)。从我一直在阅读的内容中,我看不到存储这样的数据的方法,这些数据可以轻松地允许上述情况而不会基本上恢复到关系系统。
  • 是否存在RDMS / key-val妥协,在RDMS中处理核心auth和privlidges,为对象查找的键/值提供关键(不确定sub-object / user / obj / 1/2如何许可将在这里工作)。这应该是答案吗? :)
  • 感谢任何其他一般性建议。吹捧的facebook用例必须回答这样的关系问题,所以我确信NoSQL可以做到这一点 - 我还没看到它如何做得更好。

感谢你坚持一个很长的问题。

2 个答案:

答案 0 :(得分:2)

NOSQL :用户数量庞大,速度至关重要,不关心数据完整性(如果发生这种情况就是奖金)

SQL (RDBMS):其他所有内容。

答案 1 :(得分:0)

首先,我不能回答你的整个问题,但是根据我的理解:

如果这是您查找的范围:

direct - user asks for file
list mine - as a user what can i see
list owned - what objects have i created
list tagged - what objects are tagged with 'appX' that i can access. and there will inevitably be many others

mongodb很好。如果您因任何原因需要从文件转到用户,那么您希望使用SQL。