2013-09-24 9 views
5

Sono abbastanza nuovo per Neo4j e ho il seguente problema a portata di mano. Sto cercando di sviluppare un sito di social networking in cui vorrei memorizzare il messaggio scambiato tra due utenti sulla loro proprietà di relazione. Per questo, sto cercando di memorizzare tutti i loro messaggi sotto forma di array/lista su una proprietà di relazione. Potete suggerire per favore se Neo4j fornisce tali tipi di operazioni.Memorizzazione dei dati come array/elenco sulla proprietà neo4j

Vorrei anche sapere se ho potuto solo inserire il mio messaggio su questa proprietà rapporto e gli aggiornamenti di matrice/List (cioè aggiunge un nuovo messaggio sul successivo punto di indice)

Per esempio:

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"] 

Qualcosa in questo modo ..... Grazie

risposta

5

Neo4j supporta le proprietà di matrice, vedere http://neo4j.com/docs/rest-docs/current/#rest-api-property-values.

Tuttavia, non sono sicuro che tu stia utilizzando un buon approccio di modellazione. Se si archiviano tutti i messaggi in un array, la cronologia della conversazione non è esplicita nel grafico. Ancora peggio se un Utente1 invia 2 messaggi a Utente2 senza una risposta da Utente2 in mezzo, non saprai più chi era il mittente e il destinatario.

Quindi pensa di introdurre un nodo che rappresenta una conversazione. La conversazione è correlata a due utenti. Un'altra relazione punta all'inizio (o alla fine) del flusso di messaggi all'interno di questa conversazione. I messaggi stessi sono collegati tra loro NEXT e/o PRECEDENTI.

+0

Grazie per la tua risposta Stefan !!! In realtà sto pianificando di memorizzare la conversazione in una proprietà di una relazione tra i due nodi rappresentati come utenti. Conserverei i messaggi insieme ai timestamp in formato json. Per favore fatemi sapere se questo approccio suona bene !!! Grazie –

+0

Va bene se il messaggio non è "qualcosa di proprio" nel contesto dell'applicazione. Se ad es. vuoi che le persone successive votino o taggano i messaggi che sono nascosti. Se li hai modellati esplicitamente come nodi, sono referenziabili da nodi che rappresentano tag o valutazioni. –

+0

Grazie Stefan per i tuoi suggerimenti. Ingressi di valore davvero !!! –