Confuso nel modello di dati NoSql

1

Ho un'applicazione web che usa MongoDB come database primario. Questo è il primo progetto che faccio con un DB NoSQL. Sto provando a creare il modello dell'applicazione ma sono confuso. So che i database NoSQL non sono normalizzati ed è normale replicare i dati evitando i join (che non sono supportati), ma ora sto pensando a questo scenario:

Ho la classe User che contiene l'indirizzo email e l'utente può cambiarla nella pagina del profilo. Questo indirizzo email viene visualizzato in poche pagine in ambienti diversi e penso che la scelta giusta sia quella di incorporare questa proprietà in alcuni documenti di classe (es .: abbonamento prodotto, fattura, carrello della spesa, ...).

Cosa succede se l'utente cambia il suo indirizzo e-mail? Devo attivare più aggiornamenti per modificare ogni raccolta, ogni documento che incorpora questa proprietà?

    
posta danyolgiax 04.04.2014 - 17:39
fonte

1 risposta

1

Se capisco la tua domanda, giusto ...

Per un esempio:

User Model: 
    {
     name: String,
     email: String
     ...
     ...
    }

altri modelli (abbonamento prodotto, fattura, carrello) avranno rif. a Modello utente, ad esempio Modello fattura:

{
 name: String,
 amount: Number,
 date: Date
 ...
 ...
 _user: { type: ObjectID, ref: 'UserModel'}
}

quindi quando recuperi i dati per i modelli con riferimento utente, puoi popolare _user , e avere l'oggetto utente corrente nei dati che stai recuperando da db.

Non è necessario memorizzare i dati utente in ogni singolo modello solo _id con riferimento a Modello utente. Con questa implementazione hai solo bisogno di aggiornare la tua collezione di utenti.

    
risposta data 17.06.2015 - 21:32
fonte

Leggi altre domande sui tag