Domanda

Cerco memorie dei valori chiave NoSQL che forniscono anche per la memorizzazione / mantenimento di relazioni tra entità memorizzati. So datastore di Google App Engine consente di rapporti di proprietà e senza proprietario tra entità. Se uno qualsiasi dell'Enciclopedia di fornire negozio NoSQL popolare qualcosa di simile?

Anche se la maggior parte di loro sono schema di meno, ci sono metodi per i rapporti appropriati su un negozio di valore chiave?

È stato utile?

Soluzione

Appartiene alle caratteristiche principali del database grafico per fornire supporto per relazioni tra entità. In genere, si modella le entità come nodi e le relazioni come relazioni / bordi nel grafico. A differenza di RDBMS non si dispone per definire le relazioni di anticipo - basta aggiungere al grafico se necessario (-schema gratuito). Ho creato una galleria modellazione del dominio dare alcuni esempi di come questo può guardare in pratica. Gli esempi utilizzano il graphdb Neo4j, un progetto che sto coinvolto in. La mailing list di questo progetto utilizzare per rivelarsi molto utile per le domande grafico di modellazione.

Riak ha il supporto per i collegamenti tra documenti.

È possibile aggiungere il supporto per le relazioni in cima a qualsiasi motore di database (come chiave / valore), ma non viene whithout lavoro. Tutto si riduce al vostro caso d'uso. Se si forniscono maggiori dettagli è più facile trovare una risposta utile.

Ops, ora ho visto che il titolo dice "store NoSQL" e poi la tua domanda attuale si restringe verso il basso per questo "NoSQL negozio valore della chiave". Come chiave / valore negozi non hanno semantica per la definizione dei rapporti tra entità io sarò ancora posto la mia risposta.

Altri suggerimenti

MongoDB è un database di documenti, non è un negozio chiave / valore. Essa fornisce, tuttavia, una semplice forma di riferimenti tra documenti . Questi lavori più o meno come SQL chiavi esterne che vengono annullato automaticamente quando l'oggetto si fa riferimento viene eliminato.

Questo è sufficiente per lo stesso tipo di cose per cui usereste le chiavi esterne, ma non è ottimizzato per gravi attraversamento grafico.

I rapporti in Google App Engine sono solo chiavi per le entità che vengono automaticamente de-reference quando vi si accede nel codice. E sono solo valori quando viene utilizzato per filtrare contro. La sua funzione della DB Api, piuttosto che qualcosa di esplicito, quindi l'accesso al ReferenceProperty semplicemente eseguire una query sul modello di riferimento per ottenere l'accesso all'oggetto.

Se si guarda a qualcosa di simile a MongoDB, i rapporti sono memorizzati in oggetto (da quello che ho ricordate), ma possono anche essere memorizzati come vuoi, nel senso che è necessario creare un'API che cercare la tabella uniti per il vostro articolo nel rapporto in un modo simile a chi lavora l'App Engine.

Paul.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top