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

Chiavi esterne in mongo?

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.