Cosmos DB でデータをモデル化する方法

Cosmos DB でデータをモデル化する方法として、参照モデルと埋め込みモデルの2種類があります。
参照モデルがいわゆる、リレーショナルデータベースでの正規化をベースとしたモデリングとなります。

参照モデルとしては、種類ごとにドキュメントを分離し、1つのPostに複数のCommentが紐づいたりします。
それぞれが独立していて、個別に更新されます。

それに対して、埋め込みモデルは、1つのドキュメントに複数のデータを内在させます。
1つのPostに複数のCommentを内在させます。
内在しているので、Itemを更新すると同時に更新することになります。

Cosmos DBで性能とRU/sを考慮したモデルリングをしていく際には、埋め込み型を使用したほうがいいケースがあり、モデルリング時にはどちらが最適化を考慮する必要があります。

image