Identifier des modèles d’accès pour votre application

Effectué

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 1 :Plusieurs avec CustomerAddress. Le client a une relation 1:1 avec CustomerPassword.

Diagramme montrant le modèle relationnel pour les entités client.

Dans notre application, nous allons effectuer trois opérations sur les entités Customer :

  • Créer un client : lorsqu’un utilisateur visite d’abord le site e-commerce, un nouveau client est créé.
  • Mettre à jour un client : lorsqu’un utilisateur existant met à jour ses informations de profil, son enregistrement client est mis à jour.
  • Récupérer un client : lorsqu’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. Nous pouvons donc modéliser la relation 1 :Plusieurs entre Customer et CustomerAddress et incorporer les données d’adresse client sous forme de tableau. Pour la relation 1:1 entre Customer et CustomerPassword, nous pouvons l’incorporer en tant qu’objet dans notre 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.

Diagramme montrant un document client modélisé.