Considerare che l'utilizzo di un DB relazionale o di altri database gerarchici o simili non è un'opzione, cercando l'approccio alternativo utilizzando un semplice KV-store semplice (ma molto veloce ed efficiente).
Il valore (riferito a chiave) è un BLOB crittografato, il cui contenuto è costituito da 2 entità / oggetti correlati, con una relazione 1: N 'referto-a'. Per es.
'Master' ==> (0:N) 'Pet'
Dove il Maestro ha molti attributi (ID-Unitario-Membro, Nome, Indirizzo, DoB, Genere ...), Pet ha molti attributi (Nome, DoB, attuale-maestro-Unico-Membro-Id, genere, classe , genere ...) e la proprietà degli animali domestici può cambiare (solo un esempio).
In tal caso, XML o JSON o un altro formato di codifica sarebbero i più efficienti (dal punto di vista di lettura / decodifica / velocità di calcolo, non dal punto di vista dell'efficienza dello storage), supponendo che un'applicazione Java debba leggere / decodificare queste informazioni molto veloce (la latenza di calcolo deve essere minima). Le scritture sono rari e la latenza della stessa non è un problema. Inoltre, si noti che utilizzerei il datastore KV per contenere anche gli indici per consentire la ricerca / ricerca utilizzando chiavi secondarie. Sono consapevole delle necessità di mantenere la coerenza e l'integrità referenziale, esplicitamente nella mia applicazione, per le operazioni di aggiornamento.
Sulla base delle mie ricerche (leggendo SO SO / Prog SE e altre fonti), JSON sembra essere il chiaro vincitore per i dati straight-foward non relazionali. C'è qualcosa che è ancora più veloce? Il fatto che i miei dati siano relazionali, anche se relativamente semplici, influisce sulla scelta tra JSON, XML o un'altra forma?