3

我正在考虑使用图形数据库来存储IFC数据。理想情况下,数据库应该提供一种方法来定义在 IFC 模式中定义的所有规则类型。但是,我认为没有这样的数据库,因为 IFC 中的某些规则类型非常复杂,需要查询数据库。其他的很简单,例如 GUID 的唯一性、强制属性的存在或数据验证。Neo4j 似乎有一些约束执行方法:

Neo4j 通过使用约束来帮助加强数据完整性。约束可以应用于节点或关系。可以创建唯一节点属性约束,以及节点和关系属性存在约束。

是否有其他方法可以确保输入的数据符合预定义的模式?

还是有其他更适合这项工作的图形数据库?

4

2 回答 2

3

通过创建事务事件处理程序,您几乎可以实现您想要的一切。

http://neo4j.com/docs/java-reference/current/javadocs/org/neo4j/graphdb/event/TransactionEventHandler.html

您还可以查看GraphAware 框架及其所有用例的子模块,以及创建和部署 neo4j 扩展的便利性。

于 2017-01-01T00:13:21.493 回答
1

取决于您是否需要数据库本身强制执行的模式,或者您是否可以在应用程序层完成该模式。

我刚刚将Restagraph 提升到“工作原型”级别,我的下一个技巧是 Dockerising 它。它是一种框架,使您能够通过在 Neo4J 中使用特定标签创建节点和关系来定义模式,并动态创建 REST API 来执行它。

它也是用 Common Lisp 编写的,所以如果您等待 Docker 映像,我会明白的:)

于 2017-01-02T15:15:35.330 回答