如何在OrientDB中映射多对多关系

时间:2014-04-28 20:14:45

标签: java orientdb

我从OrientDB开始,我掌握了正确的基础知识。但我无法弄清楚如何以一种在删除记录时不需要我进行大量完整性检查的方式来映射多对多关系。

我正在使用对象数据库(ODatabaseObjectTx),我试图映射这个简单的关系:

人< - >角色

一个人可以有多个角色,一个角色可以分配给多个人。 N到M的关系。

我的班级:

public class Person {
    private String name;

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

我的角色课程:

public class Role {
    private String name;

    public Role() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

现在我无法弄清楚是否必须在Set<Role>班级中加User或在Set<User>班级加Role来建立链接。无论哪种方式,如果我从一个记录中删除一个记录,我必须检查另一个记录的链接以避免null引用。对我来说,在Set<Role>课程中放置User会更方便。

在RMDBS中你可以创建一个外键并添加一些级联规则,OrientDB是否提供类似的功能来省去手动执行此操作的麻烦?

如果最后我必须手动执行此操作,我应该采取什么策略?删除记录时我应该完全检查其他群集吗?我应该离开null并在看到它们时处理它们吗?我应该创建双引用(Set<Role>中的UserSet<User>中的Role,我想这会带来更快的删除,代价是更多的空间和复杂性)?< / p>

1 个答案:

答案 0 :(得分:0)

查看文档:{​​{3}}