【发布时间】:2018-06-06 14:21:17
【问题描述】:
在 Neo4j 中存储和检索从其他对象继承属性的对象的推荐方法是什么?
模型如下所示:
public class Base
{
public string BaseProperty { get; set; }
}
public class DerivedA : Base
{
public string DerivedAProperty{ get; set; }
}
public class DerivedB : Base
{
public string DerivedBProperty{ get; set; }
}
我们有很多衍生模型。我们的第一个解决方案是为每个派生类型创建一个事务,其中还包括来自 Base 的属性。问题:每当 Base 发生变化时,我们都必须更改所有派生类型的所有事务。
下一个解决方案是为 Base 编写一个单独的 Transaction,它首先将其属性存储到 neo4j 中。然后在确定了哪个派生类型之后,将创建另一个事务来存储派生类型的剩余属性。这样一来,交易数量翻了一番,但我们有一个清晰的分离,使更改更容易。
检索更加困难。如果我们想要获取存储在 Neo4j 中的所有 DerivedA 类型,我们首先有一个检索基本属性的事务。然后我们确定派生类型并跟进一个从派生类型检索属性的新事务。现在我们必须以正确的方式将两个事务的结果混合在一起,以获得包含所有属性的完整 derivedA 列表。
有没有更简单/更好的方法?
【问题讨论】:
标签: neo4j