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.