さて、今回はアプリを書くほうのエンジニアにとっては一番大事なスキーマ設計について学んだことをまとめていこう。ここはユーザが増えるにつれて全てのエンジニアが直面する部分なので、予めそれらを予見してスキーマを設計できるようになる必要がある。 正規化と非正規化 ここがMongoDBにおいて最も悩む部分だ。どれをEmbed Document にして、どれをReference にするか、だ。これはそのアプリケーションの特性によってどちらかにするかをアプリエンジニア自身が決定しなければならない。腕の見せ所だ。 ただ、それがしっかりと理解していれば割と簡単に決められる基準はある。 Embed Document References 小さなサブドキュメント 大きなサブドキュメント 頻繁なデータ更新が無い 変わりやすいデータ データ更新に時間がかかってもいい 一瞬のデータ反映が必要 データの増え方が小さい