我从 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/