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

MongoDB normalisering, fremmednøgle og joining

MongoDB understøtter ikke udenlandske nøglerelationer på serversiden, normalisering frarådes også. Du bør indlejre dit underordnede objekt i overordnede objekter, hvis det er muligt, dette vil øge ydeevnen og gøre fremmednøgler helt unødvendige. Når det er sagt, er det ikke altid muligt, så der er en speciel konstruktion kaldet DBRef, som gør det muligt at referere til objekter i en anden samling. Dette er måske ikke så hurtigt, fordi DB skal lave yderligere forespørgsler for at læse objekter, men giver mulighed for en slags fremmednøglereference.

Alligevel bliver du nødt til at håndtere dine referencer manuelt. Kun mens du slår din DBRef op, vil du se, om den eksisterer, DB vil ikke gennemgå alle dokumenterne for at lede efter referencerne og fjerne dem, hvis målet for referencen ikke eksisterer længere. Men jeg tror, ​​at fjerne alle referencerne efter sletning af bogen ville kræve en enkelt forespørgsel pr. samling, ikke mere, så egentlig ikke så svært.

Hvis dit skema er mere komplekst, bør du sandsynligvis vælge en relationsdatabase og ikke nosql.

Der er også en bog om at designe MongoDB-databaser:Document Design for MongoDB

OPDATERING Bogen ovenfor er ikke tilgængelig længere, men på grund af MongoDBs popularitet er der en hel del andre. Jeg vil ikke linke dem alle, da sådanne links sandsynligvis vil ændre sig, en simpel søgning på Amazon viser flere sider, så det burde ikke være et problem at finde nogle.

Se MongoDB-manualsiden for 'Manuelle referencer' og DBRefs for yderligere detaljer og eksempler



  1. Redis på Azure Performance Benchmark – ScaleGrid til Redis™ vs. Azure Cache

  2. Hvordan opretter man forbindelse til en Redis-container ved hjælp af Docker Compose?

  3. MongoDB:Unikt indeks på array-elementets egenskab

  4. forstå MongoDB cache-system