2013-09-24 116 views
5

我對Neo4j相當陌生,手邊有以下問題。 我正在嘗試開發一個社交網站,我希望將兩個用戶之間交換的消息存儲在他們的關係屬性中。 爲此,我試圖以關係屬性上array/list的形式存儲所有消息。如果Neo4j提供這種類型的操作,您能否提出建議?將數據作爲數組/列表存儲在neo4j屬性上

我也想知道如果我可以插入這種關係屬性和陣列/列表更新我的信息(即在接下來的指數增加了新的消息)

對於前:

User1 -> User2 : Hi, whats up 
User2 -> User1 : Hi, I am in college 

So the relationship property stores the message in the form of list such as: 
["Hi,Whats up", "Hi, I am in college"] 

這樣的東西..... 謝謝

回答

5

Neo4j支持數組屬性,請參閱http://neo4j.com/docs/rest-docs/current/#rest-api-property-values

但是我不確定你是否在這裏使用了很好的建模方法。如果將所有消息存儲在數組中,則沒有在圖中顯式對話的時間線。更糟糕的是,如果用戶1向用戶2發送了2條消息而沒有來自用戶2的響應,則您將不再知道誰是發送者和接收者。

因此,想想介紹一個代表對話的節點。會話與兩個用戶有關。另一個關係指向此對話內消息流的開始(或結束)。消息本身與下一個和/或以前的關係相互關聯。

+0

感謝您的回覆Stefan!實際上,我打算將對話存儲在兩個節點之間的關係屬性中,這兩個節點被重新組織爲用戶。我將以json格式存儲消息以及時間戳。請讓我知道這種方法聽起來不錯! Thanx –

+0

沒關係,如果消息在應用程序的上下文中不是「它自己的東西」。如果你希望稍後人們對他們隱藏的消息進行評分或標記。如果您將它們明確建模爲節點,則它們可以從代表標記或評級的節點中引用。 –

+0

感謝Stefan的建議。確實有價值的投入! –