MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongo DB Design, embedding vs relazioni

1) Per quanto riguarda il limite del documento di 4 MB, questo è ciò che dice "MongoDB:The Definitive Guide" :

Alla fine dipende da quanto ti aspetti che le bollette crescano per un utente. Spero che il brano sopra ti dia un'idea dei limiti imposti dalle dimensioni del documento.

2) Lo schema denormalizzato (le fatture vanno con il documento utente) è la strada da percorrere se sai che non eseguirai mai query globali sulle fatture (un esempio di tale query è se desideri recuperare le dieci fatture più recenti entrato nel sistema). Dovrai utilizzare map-reduce per recuperare i risultati per tali query se utilizzi uno schema denormalizzato.

Lo schema normalizzato (utente e fatture in documenti separati) è una scelta migliore se si desidera flessibilità nel modo in cui vengono interrogate le fatture. Tuttavia, poiché MongoDB non supporta i join, dovrai eseguire più query ogni volta che desideri recuperare le fatture corrispondenti a un utente.

Dato il caso d'uso che hai menzionato, andrei con lo schema denormalizzato.

3) Tutti gli aggiornamenti in MongoDB sono atomici e serializzati. Questo dovrebbe rispondere alla preoccupazione di Steve.

Potresti trovare utili queste diapositive. http://www.slideshare.net/kbanker/mongodb-meetup

Puoi anche guardare la pagina delle distribuzioni di produzione di MongoDB. Potresti trovare utili le diapositive di SF.net.