2014-11-02 21 views
1

我是Neo4J和圖形數據庫的新手,因此我對構造關係有一些疑問。我正在爲此項目使用NeomodelNeomodel關係

我有兩個獨立的數據模型文件(請注意,我用的,而不是作爲models.py我Neo4j的實驗與Postgres的nodes.py)

帳戶> nodes.py

class User(StructuredNode): 
    firstName = StringProperty() 
    lastName = StringProperty() 
    email = StringProperty() 
    active = BooleanProperty() 
    campaigns = RelationshipTo('campaigns.nodes.Campaign', 'OWNS') 

系列> nodes.py

class Campaign(StructuredNode): 
    name = StringProperty() 
    campaignId = IntegerProperty() 
    active = BooleanProperty() 
    user = RelationshipFrom('accounts.nodes.User', 'OWNS') 

我不知道,我有ç根據最佳實踐對關係進行了配置(我知道當前代碼是多餘的)。是否有必要在兩個節點類上都具有RelationshipTo和RelationshipFrom屬性?還是RelationshipTo從擁有者節點(用戶)到擁有的節點(Campaign)是否足夠?

還是應該有一個單獨的RelationshipTo財產活動,以用戶:

user = RelationshipTo('accounts.nodes.User', 'OWNED_BY') 

我不知道這是否是連顯著的問題,但任何指導或建議將不勝感激!

回答

1

只有當您想從雙方訪問它時,您才需要在每一面上進行定義。即,如果您只想從廣告系列對象中調用campaign.user.single(),但不關心訪問用戶廣告系列,則不需要對用戶類進行定義。

通常我覺得最好是在雙方都定義一個關係,因爲它更容易讓新的模式人員瞭解它的結構。兩個定義應該是相同的類型,所以OWNS_BY會返回一組不同的關係。這些類型的命名是完全取決於你不過大寫似乎是慣例,

希望這有助於隨意消息我在GitHub上,如果您有任何疑問,

乾杯,

Rob