簡體   English   中英

neo4j中節點之間的版本控制關系

[英]Versioning relationships between nodes in neo4j

假設有兩個節點A和B,

(A)-[r]-(B)

r具有一個“權重”屬性,可以說是A對B的依賴性的度量。

權重值經常變化,我希望將權重值版本化。 在兩個相同節點之間建立新關系,並在最后創建的關系上添加屬性['valid':true]是否可行?

我問這個問題是因為有人告訴我,如果需要對屬性進行版本控制,則它們絕對應該是節點:

https://twitter.com/ikwattro/status/746997161645187072

但是,兩個節點A和B之間的權重屬性自然屬於它們之間的關系。 如何使用節點保持重量?

編輯:

示例:假設A是帶有標簽:FRUIT的節點,而B是帶有標簽:PERSON的節點,進一步,讓r是兩者之間的關系,帶有標簽:LIKING,並且r的'weight'屬性是a衡量人B喜歡水果A的程度。

r的weight屬性不斷變化,並且需要隨時間對該版本進行版本控制。

我認為這取決於兩件事: weight更新的頻率以及將在版本weights上運行的查詢:

  1. 如果您希望更新的數量很少,並且僅保留它們作為參考,則可以使用單一關系並將舊值存儲在屬性(例如,映射或什至字符串)中。

  2. 如果您希望更新的次數很少,並且希望定期查詢數據,則對每個更新使用新的關系是合理的。

  3. 如果weight經常變化,而您實際上需要訪問數據(即為數百萬個水果收集數百萬個重量值),則我不會將其存儲在neo4j中。 使用帶有PersonID, FruitID, weight, timestamp或其他數據存儲的簡單MySQL表。 僅將最新值存儲在neo4j中。

我經常使用2.和3.,即使3.聽起來有些大材小用,但只要您僅通過清晰的查詢“外包”結構化數據,通常實現起來就很簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM