Identifikace vzorů přístupu pro vaši aplikaci
Při návrhu datového modelu pro databázi NoSQL je cílem zajistit, aby se operace s daty prováděly v nejmenších požadavcích. K tomu je potřeba porozumět vztahům mezi daty a tím, jak budou aplikace přistupovat k datům. Tyto vzory přístupu jsou důležité, protože spolu s relacemi určují, jak jsou vlastnosti různých entit seskupené a uložené v dokumentech v kontejnerech ve službě Azure Cosmos DB for NoSQL.
Ve službě Azure Cosmos DB for NoSQL se dokumenty označují jako položky a kontejnery, které se často označují jako kolekce.
Identifikace vzorů přístupu pro entity zákazníků
Začněme entitami zákazníků v naší databázi elektronického obchodování. Následující diagram znázorňuje tři entity a vztahy mezi nimi. Tři entity jsou Customer, CustomerAddress a CustomerPassword. Entita Zákazník má vztah 1:N k CustomerAddress. Zákazník má vztah 1:1 k CustomerPassword.
V naší aplikaci provedeme tři operace s entitami zákazníka:
- Vytvoření zákazníka: Když nový uživatel poprvé navštíví web elektronického obchodování, vytvoří se nový zákazník.
- Aktualizace zákazníka: Když stávající uživatel aktualizuje informace o svém profilu, aktualizuje se záznam zákazníka.
- Načtení zákazníka: Když existující uživatel navštíví web, přihlásí se pomocí svého hesla. Během stejné relace bude muset získat přístup k jiným zákaznickým datům (například adrese) pro nákup nových položek.
Pro každou z těchto operací potřebujeme všechna tato data najednou. Pokud by byly modelovány jako samostatné dokumenty, vyžadovalo by několik cest na server k vytvoření, aktualizaci a načtení zákaznických dat. To je neefektivní.
Modelování entit zákazníků
Azure Cosmos DB ukládá data jako JSON, takže můžeme modelovat vztah 1:N mezi Zákazníkem a CustomerAddress a vložit data adresy zákazníka jako pole. Pro vztah 1:1 mezi Zákazníkem a CustomerPassword můžeme tento objekt vložit jako objekt do našeho nového dokumentu zákazníka. Aplikace elektronického obchodování pak může vytvářet, upravovat nebo načítat zákaznická data v rámci jedné žádosti.
Následující diagram znázorňuje, jak vypadá naše entita zákazníka.