2014-04-28 73 views
4

我從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; 
    } 
} 

現在我無法弄清楚,如果我要放在UserSet<Role>Set<User>Role類來建立鏈接。無論哪種方式,如果我從一個記錄中刪除一個記錄,我必須檢查另一個記錄的鏈接以避免引用null。對我來說,在User類中放置一個Set<Role>會更方便。

在RMDBS中,您可以創建一個外鍵並添加一些級聯規則,OrientDB是否提供了類似的功能來節省我手動執行此操作的麻煩?

如果最後我不得不手動做這個,我應該採取什麼策略?刪除記錄時,我應該完全檢查另一個羣集嗎?我應該離開null,並在看到它們時處理它們嗎?我是否應該創建雙引用(在和Set<User>Role中都有Set<Role>,我想這會以更多的空間和複雜性爲代價帶來更快的刪除)?

回答