Come progettare un tavolo come questo in mongodb?
In primo luogo, per chiarire alcune convenzioni di denominazione. MongoDB utilizza collections
invece di tables
.
Penso che non ci siano chiavi esterne!
Prendi il seguente modello:
student
{
_id: ObjectId(...),
name: 'Jane',
courses: [
{ course: 'bio101', mark: 85 },
{ course: 'chem101', mark: 89 }
]
}
course
{
_id: 'bio101',
name: 'Biology 101',
description: 'Introduction to biology'
}
Chiaramente l'elenco dei corsi di Jane punta ad alcuni corsi specifici. Il database non applica alcun vincolo al sistema (es.:vincoli di chiave esterna ), quindi non ci sono "eliminazioni a catena" o "aggiornamenti a catena". Tuttavia, il database contiene le informazioni corrette.
Inoltre, MongoDB ha uno standard DBRef che aiuta a standardizzare la creazione di questi riferimenti. In effetti, se dai un'occhiata a quel link, ha un esempio simile.
Come posso risolvere questo compito?
Per essere chiari, MongoDB non è relazionale. Non esiste una "forma normale" standard. Dovresti modellare il tuo database in modo appropriato ai dati che memorizzi e alle query che intendi eseguire.