【问题标题】:Does Neo4j support constraints based on a domain-model?Neo4j 是否支持基于域模型的约束?
【发布时间】:2014-02-01 13:20:15
【问题描述】:

小问题

Neo4j 是否支持基于域模型的约束?

说明

在基础教程中,它说“请始终将这张图片放在手边。它详细介绍了本教程的领域模型。” (https://stack.versal.com/api2/assets/fdc05cea-e18b-44ea-8ba9-e119d7a8f872)。

但是有什么方法可以检查存储在图中的数据是否尊重此域模型?

对于关系型数据库,我们有“创建”指令来构建域模型和“插入”指令来存储符合此域模型的数据。

对于 Neo4j 中的图形数据库,我只找到了“创建”指令,我们可以在其中指定类型(这将是域模型的一部分)。

我需要做什么

我需要创建一个域模型来防止创建不符合域模型的节点,例如:

  • 节点类型必须在域模型中
  • 一种关联只能链接特定类型的节点

示例

使用教程中的电影域模型 (https://stack.versal.com/api2/assets/fdc05cea-e18b-44ea-8ba9-e119d7a8f872):

  • 节点只能是 Person 或 Movie 类型
  • 电影不能有出边
  • DIRECTED 或 ACTED_IN 关系不能链接两个人
  • ...

这在 Neo4j 中可行吗? 还是我必须在模型上创建检查器?

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    您必须创建模型检查器或 API,以确保仅添加与模型匹配的节点。

    您描述的一些东西将来会添加到 Neo4j 中,但尚未确定何时。

    但我今天看到了http://structr.org 应用程序框架的介绍,它允许您对具有类型、属性和与基数的关系的模式进行建模。

    【讨论】:

    • 域建模约束(即适当的模式)将是 IMO 的巨大胜利。允许开发人员将应用层约束移动到数据库本身。似乎在数据库级别拥有这些信息也可能允许更有效的存储和检索。
    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多