私はまだスキーマのないドキュメント指向データベースの使用に慣れてきており、アプリケーション モデル内のスキーマ設計に関して一般的に受け入れられている慣行について疑問に思っています。
具体的には、次のようにmongodbに保存するときに、アプリケーションモデル内でスキーマを適用することをお勧めするかどうか疑問に思っています:
{
_id: "foobar",
name: "John"
billing: {
address: "8237 Landeau Lane",
city: "Eden Prairie",
state: "MN",
postal: null
}
balance: null,
last_activity: null
}
次のように使用されるフィールドのみを保存するのに対して:
{
_id: "foobar",
name: "John"
billing: {
address: "8237 Landeau Lane",
city: "Eden Prairie",
state: "MN"
}
}
前者は自己記述的で私が気に入っていますが、後者はモデル スキーマの可変性について何も仮定していません。
最初のオプションは、モデルで使用されているがまだ特定されていないフィールドが一目でわかるので気に入っていますが、追加したい場合、すべてのドキュメントを更新して新しいスキーマ設計を反映させるのは面倒なようですのような追加のフィールドfavorite_color
。
ほとんどのベテラン mongodb ユーザーはこれをどのように処理しますか?