RDBMSの洗脳解除の時間です。:)
couchdbのスキーマレス設計の最大のポイントの1つは、移行の必要性を防ぐことを直接目的としています。オブジェクトのJSON表現により、オブジェクトをダックタイピングするのが簡単になります。
たとえば、ブログタイプのWebアプリがあり、投稿や、人々がブログに保存している派手なものが何であれ、それがあるとします。投稿ドキュメントには、作成者、タイトル、作成者などのフィールドがあります。ここで、「投稿を公開するときに月がどのフェーズにあるかを追跡する必要があります...」と考えて、moon_phaseを次のように追加します。新しい投稿への属性。
完了したい場合は、戻って古い投稿にmoon_phaseを追加しますが、これは必ずしも必要ではありません。
ビューでは、属性としてmoon_phaseにアクセスできます。そして、それはnullになるか、例外などを引き起こします。(JSの専門家ではありません。nullが正しい答えだと思います)
物事は、それは本当に重要ではありません。何かを変えたいと思ったら、それを変えてください。あなたの意見がその変化を理解していることを確認してください。私の経験では、これは実際にはそれほど多くを必要としません。
また、本当にパラノイアの場合は、次のようにバージョン/タイプ属性を保存できます。
{
_id: "foo-post",
_rev: "23490AD",
type: "post",
typevers: 0,
moon_phase: "full"
}
お役に立てば幸いです。