2014-12-10 9 views
6

Mi chiedevo come si rappresenterebbero le relazioni in Aerospike? Mi rendo conto che è un negozio Key-Value, ma c'è un esempio che può essere dato?Relazioni in Aerospike

Ad esempio: Se si dispone di un utente nel sistema e si desidera ottenere un elenco di record di Thing associati a tale utente.

risposta

4

paio di idee veloci:

1- Avere ogni utente sia un record (equivalente di una riga per RDBMS convenzionali) con più scomparti, ogni bin avendo la chiave primaria di una 'cosa' record in esso. È possibile trovare ulteriori dettagli sul modello di dati di Aerospike here. Questo dovrebbe funzionare bene se il numero di cose associate a un utente è piuttosto basso (in genere meno di 100).

2- Se si dispone di un numero elevato di record "Cose" associati per utente, è possibile utilizzare un LDT (Large Data Type) come un LLIST.

Spero che questo aiuti!

4

Un modo in cui gli archivi valore-chiave NoSQL si discostano dal modo di pensare relazionale è che le relazioni molte-a-uno possono essere rappresentate nella stessa tabella utilizzando elenchi e mappe.

Ad esempio, se l'utente ha diverse carte di credito, ognuna delle quali è una tupla di (tipo di carta, ultime 4 cifre della carta, il token dal processore che rappresenta la carta, codice postale di fatturazione) possono essere presenti come una lista di mappe. I join tra due tabelle che rappresentano un molti-a-uno esistono perché un RDBMS modella i dati atomici, dove in Aerospike i dati sarebbero modellati come un tipo di dati complesso.