簡単な例を挙げておきます:あなたには注文とショッピングカートがあります。私がこれを維持することを構想する一つの方法は、注文書とカート書類を保存することです。 Orderドキュメントには、ショッピングカートと呼ばれるフィールドがあり、その値は関連するカートドキュメントのUUIDです。私がこれをやっていると想像できるもう一つの方法は、Cart全体の連想配列を含む "shopping-cart"フィールドを持つOrder文書を保存することです。つまり、Cartを独立した文書として明示的に保存するのではなく、カート文書をOrder文書に埋め込みます。CouchDBで外部キーを実装する慣習的な方法は何ですか?
カートが永続的であることを後で判断すると、戻ってきたユーザーは半完成のカートがセッション中に彼を待っているのを発見しますか?私は、両方の方法を組み合わせることができると思います。不完全な間にカートを分けておき、ファイナライズ/購入時にオーダー文書に埋め込みます。
どちらのメソッドも動作しますが、私はCouchDBが外部キー制約を持っていないか心配です。最初の方法ではカートの文書を削除して、破損したデータセットを残すことができます。
どの方法を使用するかはどのように決定しますか?これらのメソッドの1つはCouchDBにとってもっと慣れていますか?私が逃した方法はありますか?
私はCouchDBの新機能ですので、多かれ少なかれ標準化された構造を持つことには利点/欠点を見るのが難しいです。