Hvordan designer man et bord som dette i mongodb?
Først for at præcisere nogle navnekonventioner. MongoDB bruger collections
i stedet for tables
.
Jeg tror, der ikke er nogen fremmednøgler!
Tag følgende model:
student
{
_id: ObjectId(...),
name: 'Jane',
courses: [
{ course: 'bio101', mark: 85 },
{ course: 'chem101', mark: 89 }
]
}
course
{
_id: 'bio101',
name: 'Biology 101',
description: 'Introduction to biology'
}
Det er klart, at Janes kursusliste peger på nogle specifikke kurser. Databasen anvender ingen begrænsninger på systemet (dvs.:fremmednøglebegrænsninger ), så der er ingen "cascading deletes" eller "cascading updates". Databasen indeholder dog de korrekte oplysninger.
Derudover har MongoDB en DBRef-standard, der hjælper med at standardisere oprettelsen af disse referencer. Faktisk, hvis du kigger på det link, har det et lignende eksempel.
Hvordan kan jeg løse denne opgave?
For at være klar, er MongoDB ikke relationel. Der er ingen standard "normal form". Du bør modellere din database, der passer til de data, du gemmer, og de forespørgsler, du har til hensigt at køre.