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

标签 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> 中同时包含 User 和在 Set<User> 中包含 Role,我想这会以更多空间和复杂性为代价带来更快的删除)?

最佳答案

关于java - 如何在 OrientDB 中映射多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23350365/

相关文章:

java - 在java中连接两个列表,不带null

java - 调用java方法时如何设置请求参数值?

java - 在运行时,获取传递给方法的参数/参数的数量,无论是否带有可变参数,在 Java 中

mysql - 银条东方数据库

java - CompletableFuture#whenComplete 如果使用 thenApply 则不调用

java - Gradle Eclipse 插件在生成的 .classpath 文件中不包括导出的 ="true"

java - 如何使用 Java 文档 API 为 OrientDB 数据库创建自动递增索引/序列?

orientdb - 在 orient-db 中如何舍入小数值

java - OrientDB Lucene 索引非常慢

docker - 由于 docker 数据,Ubuntu 14.04 卷磁盘已满