Neo4j(或任何其他图形数据库)建模



我开始使用图形数据库,在我的团队中,我们已经开始为我们的软件建模图形。当我们尝试"记录"模型以查看数据库的结构时,问题就来了。使用 SQL 数据库,只需查看 SQL 架构。

我们花了一些时间阅读neo4j博客和文档,但我们已经看到,显示图形如何工作的通常方法是使用显示一些样本数据的最小图形(随机样本:sample1,sample2等)。这对于教育目的来说很棒,但我们希望能够以更正式的方式做到这一点。我们想设置什么样的节点可以与另一个节点相关联,以及与什么样的关系,诸如此类的东西。

使用Spring,你可以用类包装图,但它非常特定于Java和OO模型,我们正在使用Erlang。我们正在寻找某种形式语言(SQL模式等效),或E-R模型等效物,或类似的东西。

一种方法是将图(类型网络)的"元模型"也放在图中,然后将实例(节点)连接到它们的元模型类型。因此,您可以使用图形可视化可视化元模型,同时使用元模型强制执行其他约束(通过在元模型中存储约束信息并在实际模型更新时使用该约束信息),还可以使用元模型的类型节点快速访问此类型的所有"实例"节点。

您要建模的域是什么?

一个快速的想法 - 你能使用 UML 的子集吗?图建模似乎更接近领域,所以也许这是合理的。

我们

所做的是"示例数据"方法的推广,其中我们包括关系双方的基数,以及类型和方向。我还经常在图表中包含节点"类型"(或其与域模型的角色/关系的其他规范)而不是示例数据,当然还要注意预期的属性、它们的类型以及它们是否是可选的。它不那么正式,但到目前为止效果很好。

最新更新