2011-02-04 12 views
0

ドキュメント指向のデータベースコンセプトに慣れており、注文や注文処理に関する高度な質問がいくつかあります。ドキュメント指向データベース(MongoDB?)と請求書発行/注文?

この世界でどのように注文を取得しますか?Ordersコレクションの注文は新しい文書になるだけですか? order_itemは別の文書に記載されているproductに関連しますか?または、order_itemがコピーされて注文書に挿入されると想定されているため、時間の経過とともに販売された合計productを報告するのはおそらく困難でしょうか?

取引の欠如の周りに1つの作業を行いどのようと理解するために熱心にかかわらず、私にとって非常に新しい、申し訳ありませんが整合性

を維持...それはオブジェクト」として販売のためのすべてのこれらの「もの」をカプセル化するために、非常に魅力的に聞こえますサーバー&クライアントなどの間でそれらを動かすことができます。もしそれが本当に妥当であれば。大きな写真やドントを概念化する助けが必要なだけです。

答えて

2

この世界でどのように注文を取得しますか?注文はオーダーコレクションの新しい文書になりますか?

はい。それがこれらのデータベースの仕組みです。

order_itemは別のドキュメントに記載されている製品に関連しますか?

できます。あなたがしていることに依存します。

それともORDER_ITEM注文伝票また

可能にコピーして挿入されることが想定されます。これは、履歴分析とデータウェアハウジングに適しています。

したがって、おそらく、時間の経過とともに販売された製品の合計を報告するのは難しいでしょうか?

時間の経過とともに販売された総商品を報告することは常に困難です。

今日、製品 "23SKIDOO"は、ダブルウィジェットを備えた23lのオープンバルブのフレームスタットです。

昨年は、リコール前に、同じ製品が1つのウィジェットだけを備えた23lの閉じたバルブフレームスタットでした。

昨年、同じ製品が実際に22.5lでした。

これらは同じ製品ですか?マーケティングはそれらをすべて「23SKIDOO」と呼びます。しかし違いがあります。

単一のProductテーブルでこれが正しく解決されません。それでは、 "23SKIDOO"ファミリーのすべてである "23SKIDOO-B"と "23SKIDOO-PLUS"製品を紹介できるように、製品ラインと製品ファミリを発明しています。

製品ラインと製品ファミリおよびその他のより奇妙なグループ分けは、製品がはっきりと異なる場合でも、無関係の製品を一緒に報告し、「時間をかけて販売されるトータル製品」を提供するための回避策およびハックです。

製品を注文にコピーすると(無駄に見えますが)、一般的に使用される多くの回避策よりも歴史的な忠実度が維持されます。

トランザクションの不足を回避して整合性を維持するにはどうすればよいですか?

MongoDBにはロックがあります。 http://www.mongodb.org/display/DOCS/How+does+concurrency+work

トランザクションが不足しているとはどういう意味ですか。

+0

役立つ、感謝、そしてたくさん私が期待していた何の線に沿って。 – Meltemi

+0

"製品"を扱う方法についての貴重な情報が得られたので、「同じ」製品を参照する必要がある2-3の異なるカタログがあれば、どうしますか?製品の部分(価格、サイズなど)*は異なる場合がありますが、製品名や説明の変更が複数の「文書」に複製される必要があると考えられます。私たちは今、ドキュメント指向のデータベースのスイートスポットから抜け出していますか? – Meltemi

+0

@Meltemi:多分。厳密な理論的3NF関係は、実用的なデータベース設計ではしばしば違反します。 "複製"は本質的に悪ではありません。 RDBMSを使用しても、しばしばレプリケーションと一括更新が行われます。製品説明への変更が**遡及的に**既存の文書を変更する場合、それはユースケースモデルの一部でなければなりません。たとえ3NFを使用して許可しても、実際はまれです。 –

1

したがって、一般的な質問には常に答えにくいです。しかし、私があなたにそれをすることを奨励するものは、あなたのアプリケーションが実行すると期待する読み書きのパターンを見てください。 RDBMSスキーマ設計の場合と同じように、特定のドキュメント設計にはトレードオフがあります。

ここに、MongoDB中心のスキーマ設計プレゼンテーションへのリンクがあります。これらのトレードオフとデザインのオプションのいくつかを理解するのに役立ちます。

http://www.scribd.com/doc/47326395/MongoBoulder-Schema-Design

+0

興味深いプレゼンテーション..私は認識していなかった終わり近くにいくつかのトリックを学習しました...ありがとう! – Meltemi

関連する問題