Identificarea modelelor de acces pentru aplicație
Când proiectați un model de date pentru o bază de date NoSQL, obiectivul este să vă asigurați că operațiunile asupra datelor sunt efectuate în cele mai puține solicitări. Pentru a face acest lucru, trebuie să înțelegeți relațiile dintre date și modul în care datele vor fi accesate de aplicație. Aceste modele de acces sunt importante, deoarece ele, împreună cu relațiile, vor determina modul în care proprietățile diverselor entități sunt grupate și stocate în documente în containere din Azure Cosmos DB pentru NoSQL.
În Azure Cosmos DB pentru NoSQL, documentele se numesc elemente și containere, denumite adesea sinonime denumite colecții.
Identificarea modelelor de acces pentru entitățile client
Să începem cu entitățile client din baza noastră de date de comerț electronic. Diagrama următoare afișează trei entități și relațiile dintre ele. Cele trei entități sunt Customer, CustomerAddress și CustomerPassword. Entitatea Client are o relație 1:Many cu CustomerAddress. Clientul are o relație 1:1 cu CustomerPassword.
În aplicația noastră, vom efectua trei operațiuni cu privire la entitățile client:
- Creați un client: Când un utilizator nou vizitează pentru prima dată site-ul de comerț electronic, va fi creat un client nou.
- Actualizați un client: Când un utilizator existent își actualizează informațiile de profil, înregistrarea clientului va fi actualizată.
- Preluați un client: atunci când un utilizator existent vizitează site-ul, se va conecta cu parola. În aceeași sesiune, va trebui să acceseze alte date ale clienților (cum ar fi adresa) pentru a achiziționa articole noi.
Pentru fiecare dintre aceste operațiuni, avem nevoie de toate aceste date în același timp. Dacă acestea au fost modelate ca documente separate, ar necesita mai multe trasee pe server pentru a crea, a actualiza și a regăsi datele clientului. Acest lucru este ineficient.
Modelarea entităților clienților
Azure Cosmos DB stochează datele ca JSON, astfel încât să putem modela relația 1:Many dintre Client și CustomerAddress și să încorporăm datele adresei clientului ca matrice. Pentru relația 1:1 dintre Client și CustomerPassword, o putem încorpora ca obiect în noul nostru document de client unic. Apoi, aplicația de comerț electronic poate crea, edita sau regăsi datele clienților într-o singură solicitare.
Diagrama următoare arată cum arată entitatea noastră client.