3

ドキュメントベースのデータストレージシステムでこの問題を考える適切な方法を見つけようとしています。ここでは、産業と産業グループ (配管とホーム サービスを考えてみてください) がある 2 層のカテゴリ システムの単純なケースを取り上げます。

私が最初に考えたのは、ドキュメントは Industry Group であり、その中に Industries があるということでしたが、問題は、関連するデータのほとんどが Industry になることです。ドキュメント内のサブアイテムに関連するデータを持つことが「コーシャ」であるかどうかはわかりません. たとえば、ある記事がグループではなく業界に割り当てられている場合、その参照はどのように見えるでしょうか (リンクがネストされていないドキュメントからのものであると仮定すると)。

とにかく、これについての正しい考え方についての一般的な洞察は素晴らしいでしょう。

4

1 に答える 1

4

非リレーショナル データベースを設計する最善の方法は、データ自体ではなく、データに対して実行する必要があるクエリに基づくことです。

非リレーショナル データベースは、リレーショナル データベースのような正規化のルールがないため、自由に設計できます。


あなたのコメントについて:

データがクエリされるすべての方法を列挙する必要があります。次に、それぞれの場合にクエリを最も便利にするドキュメント構造を決定します。

そこから、いくつかのパターンが浮かび上がるかもしれません。次に、判断を使用して、選択するドキュメント構造を決定します。これは、クエリの最大の断面を満たします。

また、MongoDB では、データを冗長に格納しても問題ないことに注意してください。実際、1 つのドキュメント構造がすべてのクエリに適している可能性は低いため、推奨されます。1 つのドキュメント構造がほとんどのクエリに対して非常に優れていることに気付くかもしれませんが、最後のクエリは不可能になります。他のすべてのクエリが処理されるため、その最後のクエリを処理するために、二次的な冗長なドキュメント コレクションを作成する必要があります。

非リレーショナル データベースを構築するためのルールはありません。これにより、リレーショナル データベースよりも難しくなります。申し訳ありませんが、NoSQL はTANSTAAFLのケースです。

于 2010-10-11T06:08:53.120 に答える