Ridondanza nella memorizzazione dei dati degli oggetti

0

Nel mondo dei database relazionali, tendiamo a memorizzare pezzi unici di dati in modo univoco (ad esempio, in una singola tabella, ad esempio). Tuttavia, ora, con gli archivi di oggetti (ad es. Firebase) sembra che archiviare lo stesso pezzo di dati in più punti possa essere la migliore pratica? È vero?

Ad esempio, voglio che gli utenti memorizzino i dati di contatto. Ma ogni contatto può appartenere a un solo utente (ad esempio, ogni indirizzo email univoco può essere stato inviato da uno solo e un solo utente. I tentativi successivi di inviare un'email precedentemente inviata saranno respinti). Pertanto, sembra che avrò bisogno di memorizzare singoli indirizzi email in almeno due posti. Uno in un elenco principale, da verificare per ogni invio di posta elettronica. E ogni email in quell'elenco dovrebbe indicizzare chi era l'utente di riferimento. E, ancora, ogni indirizzo e-mail dovrebbe anche essere memorizzato in un elenco sotto ciascun utente di riferimento.

Questo tipo ridondante di archiviazione dei dati negli archivi oggetti è considerato best practice e necessario nel mondo del datastore di oggetti?

    
posta Mowzer 27.10.2016 - 03:57
fonte

1 risposta

2

Gli archivi di oggetti hanno un uso molto specifico, di solito ad alte prestazioni con big data. Non sostituiscono i database relazionali. Piuttosto, soddisfano un diverso bisogno.

Di conseguenza, molte delle garanzie che si ottengono con i database relazionali gratuitamente, non si ottengono con gli archivi di oggetti. Uno dei più importanti di questi è JOINS. I join sono tipicamente fatti a mano negli archivi di oggetti (devi scrivere codice che scorre attraverso i record), quindi tutto ciò che richiede un join sarà più scomodo in un archivio di oggetti.

Tutto ciò che è stato detto, la tua affermazione (che gli archivi degli oggetti richiedono la duplicazione dei dati) è probabilmente falsa. Finché sei disposto a fare da solo, dovresti essere in grado di modellare le relazioni in un archivio oggetti nello stesso modo in cui faresti in un database relazionale.

    
risposta data 27.10.2016 - 05:22
fonte

Leggi altre domande sui tag