MongoDB – Modélisation des données

Les données dans MongoDB ont un schéma flexible.documents dans la même collection. Il n’est pas nécessaire qu’ils aient le même ensemble de champs ou la même structure. Les champs communs des documents d’une collection peuvent contenir différents types de données.

Conception du modèle de données

MongoDB propose deux types de modèles de données : – le modèle de données intégré et le modèle de données normalisé. En fonction des besoins, vous pouvez utiliser l’un ou l’autre de ces modèles pour préparer votre document.

Modèle de données intégré

Dans ce modèle, vous pouvez avoir (incorporer) toutes les données liées dans un seul document, il est également connu comme modèle de données dé-normalisé.

Par exemple, supposons que nous obtenions les détails des employés dans trois documents différents, à savoir Personal_details, Contact et Address, vous pouvez intégrer les trois documents dans un seul, comme indiqué ci-dessous.

{
	_id: ,
	Emp_ID: "10025AE336"
	Personal_details:{
		First_Name: "Radhika",
		Last_Name: "Sharma",
		Date_Of_Birth: "1995-09-26"
	},
	Contact: {
		e-mail: "radhika_sharma.123@gmail.com",
		phone: "9848022338"
	},
	Address: {
		city: "Hyderabad",
		Area: "Madapur",
		State: "Telangana"
	}
}

Modèle de données normalisé

Dans ce modèle, vous pouvez faire référence aux sous-documents dans le document original, en utilisant des références. Par exemple, vous pouvez réécrire le document ci-dessus dans le modèle normalisé comme suit :

Considérations lors de la conception d’un schéma dans MongoDB

  • Concevez votre schéma en fonction des besoins de l’utilisateur.
  • Combinez les objets dans un seul document si vous les utilisez ensemble. Sinon, séparez-les (mais assurez-vous qu’il n’y a pas besoin de jointures).
  • Dupliquez les données (mais de façon limitée) car l’espace disque est bon marché par rapport au temps de calcul.
  • Faites les jointures en écriture, pas en lecture.
  • Optimisez votre schéma pour les cas d’utilisation les plus fréquents.
  • Faites des agrégations complexes dans le schéma.

Exemple

Supposons qu’un client ait besoin d’une conception de base de données pour son blog/site web et voyons les différences entre la conception de schéma RDBMS et MongoDB. Le site Web a les exigences suivantes.

  • Chaque article a un titre, une description et une URL uniques.
  • Chaque article peut avoir un ou plusieurs tags.
  • Chaque article a le nom de son éditeur et le nombre total de likes.
  • Chaque message contient des commentaires donnés par les utilisateurs avec leur nom, leur message, leur temps et leurs préférences.
  • Pour chaque message, il peut y avoir zéro ou plusieurs commentaires.

Dans le schéma RDBMS, la conception pour les exigences ci-dessus aura au minimum trois tables.