MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Clés étrangères en mongo?

Comment concevoir une table comme celle-ci dans mongodb ?

Tout d'abord, pour clarifier certaines conventions de nommage. MongoDB utilise des collections au lieu de tables .

Je pense qu'il n'y a pas de clés étrangères !

Prenez le modèle suivant :

student
{ 
  _id: ObjectId(...),
  name: 'Jane',
  courses: [
    { course: 'bio101', mark: 85 },
    { course: 'chem101', mark: 89 }
  ]
}

course
{
  _id: 'bio101',
  name: 'Biology 101',
  description: 'Introduction to biology'
}

Il est clair que la liste des cours de Jane indique certains cours spécifiques. La base de données n'applique aucune contrainte au système (c'est-à-dire :contraintes de clé étrangère ), il n'y a donc pas de "suppressions en cascade" ou de "mises à jour en cascade". Cependant, la base de données contient les informations correctes.

De plus, MongoDB dispose d'un standard DBRef qui aide à normaliser la création de ces références. En fait, si vous regardez ce lien, il contient un exemple similaire.

Comment puis-je résoudre cette tâche ?

Pour être clair, MongoDB n'est pas relationnel. Il n'y a pas de "forme normale" standard. Vous devez modéliser votre base de données en fonction des données que vous stockez et des requêtes que vous avez l'intention d'exécuter.