如何在nodejs中为neo4j图数据库创建模式?

时间:2015-12-01 06:42:31

标签: node.js neo4j schema

我在想,我们如何阻止用户/开发者添加不需要的节点/关系/属性?

我读到的是 - 我们应该在应用程序级别强加这些架构。那么,我们怎样才能在Node.js中做到这一点?

这有什么例子吗?或者有人可以在这里发布一些代码吗?

2 个答案:

答案 0 :(得分:1)

这取决于您的应用程序的工作方式。

  1. 您可以在应用程序中创建自己的验证,但这取决于应用程序的类型。

  2. 更好的选择是为Neo4j创建自己的非托管扩展。您可以使用事务事件API - http://graphaware.com/neo4j/transactions/2014/07/11/neo4j-transaction-event-api.html

  3. GraphAware为架构强制执行者提供付费扩展程序 - http://graphaware.com/enterprise/

答案 1 :(得分:0)

Neo4j支持一些有限的架构实施。具体做法是:

  • Uniqueness constraints.指定一个节点属性,该属性充当具有给定标签的节点的唯一ID。将回滚尝试违反约束的事务。使用以下语法在Cypher中创建唯一性约束:

    CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE

  • Property existence constraints.此约束确保给定标签的所有节点都包含指定的属性。将回滚任何未指定给定属性的create语句。可以使用以下语法创建属性存在约束:

    CREATE CONSTRAINT ON (book:Book) ASSERT exists(book.isbn)

请注意,属性存在限制是Neo4j 2.3中的新功能,仅适用于Neo4j Enterprise。