Identifier des modèles d’accès pour votre application
Quand vous concevez un modèle de données pour une base de données NoSQL, l’objectif est de veiller à ce que les opérations sur les données soient effectuées en un minimum de requêtes. Pour cela, vous devez comprendre les relations entre les données et la façon dont l’application accèdera à ces données. Ces modèles d’accès sont importants, car ils déterminent, avec les relations, la façon dont les propriétés des diverses entités sont regroupées et stockées dans des documents au sein des conteneurs d'Azure Cosmos DB for NoSQL.
Dans Azure Cosmos DB for NoSQL, les documents sont appelés « éléments » et les conteneurs sont souvent désignés sous le nom de « collections ».
Identifier des modèles d’accès pour des entités Customer
Commençons par les entités Customer incluses dans notre base de données e-commerce. Le schéma suivant représente trois entités et les relations entre elles. Les trois entités sont Customer, CustomerAddress, et CustomerPassword. L’entité Customer a une relation un-à-plusieurs avec CustomerAddress. L’entité Customer a une relation un-à-un avec CustomerPassword.
Dans notre application, nous allons effectuer trois opérations sur les entités Customer :
- Créer un client : quand un nouvel utilisateur visite pour la première fois le site d’e-commerce, un nouveau client est créé.
- Mettre à jour un client : quand un utilisateur existant met à jour les informations de son profil, son dossier client est mis à jour.
- Récupérer un client : quand un utilisateur existant visite le site, il se connecte avec son mot de passe. Pendant cette même session, il faudra accéder à d’autres données client (comme l’adresse) pour acheter de nouveaux articles.
Pour chacune de ces opérations, nous avons besoin de toutes ces données en même temps. S'ils étaient modélisés en tant que documents distincts, plusieurs allers-retours au serveur seraient nécessaires pour créer, mettre à jour et récupérer les données client. C’est une pratique inefficace.
Modéliser les entités Customer
Azure Cosmos DB stocke les données au format JSON, ce qui nous permet de modéliser la relation un-à-plusieurs entre les entités Customer et CustomerAddress, puis d’incorporer les données relatives à l’adresse du client sous forme de tableau. Pour la relation un-à-un entre Customer et CustomerPassword, nous pouvons l’incorporer en tant qu’objet dans notre nouveau document client unique. Ensuite, l’application d’e-commerce peut créer, modifier ou récupérer des données client dans une seule demande.
Le diagramme suivant illustre l’aspect de l’entité customer.