私は特定のMongoDBの「スキーマ」デザイナーを知りません。コレクション自体はスキーマがないため、コレクションがどのようになるかを正確に想像するのは困難です。たとえば、データベースでPeople
、Cats
およびCars
すべてを同じコレクションに格納することを決定する場合があります。これは、名前によるクエリが簡単になるためです。
通常、ドキュメントとして永続化されるオブジェクトのグラフィカルビューを表示したい場合は、標準のクラスビューアまたはエンティティデザイナを使用します。
関係はグラフィカルツールにとっても注意が必要です。場合によっては、ObjectId
を非正規化して、Name
各ObjectId
アイテムをフェッチせずにリストを表示できるようにしたり、現在のオブジェクトに埋め込まれている他のオブジェクトのコピー全体を保存したりすることができます。物体。
多重継承を模倣するためにMongoDBにデータを保存する方法を考え出すこともできます。ほとんどのグラフィカルエンティティデザイナーは単一の継承のみをサポートしているため、MongoDBでそれらを使用しようとすると問題が発生します。
要約すると、使用する言語のエンティティデザイナーを使用してエンティティをモデル化し、クエリをサポートしてパターンを更新するためにコレクションにマップする方法を心配し、必要に応じてデータの一部を非正規化するように調整することをお勧めします。パフォーマンスが必要な場合、またはエンティティタイプ(、、string[] Tags
など)全体を簡単に検索できるようにする共通フィールドを(インターフェイスまたは継承によって)共有する場合string Name
。