sql >> Databasteknik >  >> NoSQL >> MongoDB

Ska vi använda dbref eller inbäddat dokument i en lästung applikation

DBref är inte något som en främmande nyckel i traditionella relationssystem. Det är bara en konvention som enkelt talar om för en förare (som kan) att autoladda de refererade dokumenten. Se DBRef för mer information om detta.

Beroende på vilken drivrutin som används kan du kanske ladda dessa referenser automatiskt bara när du behöver dem (lat), så prestandaöverkostnaderna borde vara riktigt små. Men lagringskostnaden är lite högre än ett enkelt refererat _id för ett annat dokument. I grund och botten skulle jag säga att du bara bör använda dessa DBrefs om det länkade dokumentet kan vara av variabeltyp. Om det är statiskt så har du fastnat med _id-referenser och kanske din egen lazy loader-funktionalitet, så att du inte upprepar dig själv.

Upprepa inte dig själv (eller dataduplicering i databastermer) gäller i ditt sammanhang också, som MongoDB rekommenderar (så jag skulle också), är att endast länka dina dokument . Annars skulle du ha högre lagringsanvändning och något långvariga uppdateringar, för att bara uppdatera en logisk enhet (dupliceras fysiskt väldigt ofta).

Med den tidigare nämnda anpassade lata laddaren kan du lägga till lite cachning så att inte varje uppslagning faktiskt resulterar i en mongodb-uppslagning. Troligtvis skulle du då behöva ta hand om din datakonsistens mellan cache och db.




  1. Ta bort element från kapslad array mongodb

  2. Alla namnservrar kunde inte svara UDP-port 53 Googles molnfunktioner python 3.7 atlas mongodb

  3. Få tillgång till undersamling i mongoid med skenor för att redigera och skapa ny post

  4. Hantera Mongoose-valideringsfel – var och hur?