代码之家  ›  专栏  ›  技术社区  ›  Ritesh M Nayak beny23

是否有NoSQL存储区也允许存储实体之间的关系?

  •  3
  • Ritesh M Nayak beny23  · 技术社区  · 15 年前

    我正在寻找NoSQL键值存储,它还提供存储/维护存储实体之间的关系。我知道谷歌应用引擎的数据存储允许实体之间的自有和非自有关系。有没有流行的NoSQL商店提供类似的服务?

    尽管其中大多数都没有模式,但是否有方法将关系适当地放到键值存储上?

    3 回复  |  直到 14 年前
        1
  •  4
  •   nawroth    15 年前

    它属于 图形数据库 为实体之间的关系提供支持。通常,您将实体建模为节点,将关系建模为关系图中的关系/边。不像 RDBMS 您不必提前定义关系——只需根据需要将它们添加到图中(无模式)。我创造了一个 domain modeling gallery 举几个例子说明这在实践中是如何的。这些例子使用了neo4j graphdb,这是我参与的一个项目。这个 mailing list 这个项目的使用证明对图形建模问题非常有帮助。

    面向文档的数据库 Riak 支持文档之间的链接。

    您可以在任何数据库引擎上添加对关系的支持(如键/值),但这并不适用。这一切都归结到您的用例上。如果你提供更多的细节,就更容易找到一个有用的答案。

    哎呀,现在我看到标题说“nosql store”,然后您的实际问题将其缩小到“nosql key value store”。由于键/值存储没有定义实体之间关系的语义,所以我仍然会发布我的答案。

        2
  •  4
  •   emk    14 年前

    MongoDB是一个文档数据库,而不是密钥/值存储。但是,它提供了 inter-document references .这些操作或多或少类似于SQL外键,当被引用对象被删除时,这些外键会自动为空。

    这对于使用外键的同类事物是足够的,但它并没有针对严重的图形遍历进行优化。

        3
  •  0
  •   Kinlan    15 年前

    Google应用程序引擎中的关系仅是在代码中访问时自动取消引用的实体的键。和是唯一用于筛选的值。它是db api的函数,而不是任何显式的函数,因此对referenceproperty的访问只需对引用的模型执行查询,以获取对对象的访问。

    如果您查看类似mongodb的内容,这些关系存储在object中(根据我记忆的内容),但是也可以按照您希望的方式存储它们,因为您可以创建一个API,以类似于应用程序引擎的工作方式搜索关系中项目的联接表。

    保罗。