6

mongodb と Lithium を使用して Web サービスを構築したいと考えています。より良いもの:

  • すべてのクライアントのデータを 1 つのコレクションに保存します (たとえば、複数のクライアントのすべてのトランザクション ドキュメントを 1 つのコレクション トランザクションに格納します)。

  • transaction_client1、transactions_client2 など、複数のコレクションを作成します。

  • クライアントごとに 1 つのデータベース

システムはスケーラブルで、展開が容易でなければなりません

4

2 に答える 2

4

方向性を示すには、何を達成したいのかを正確に知る必要があります。

ただし、オプション 2 (複数のコレクション) を除外します。このアプローチの利点が実際には見られないためです。実行時にコレクション名を決定する必要があり、クエリを作成するのは少し難しいです。所有できるコレクションの数には厳しい制限があります (2 GB の名前空間ファイルで約 150 万のコレクション) 。

オプション 1 は、クライアントを分離するのに役立ち、セキュリティを向上させる可能性がありますが、データベースを選択する際にプログラミング エラーが発生するリスクが依然としてあります。ただし、そのコードを分離するのは簡単です。

これらのオプションにはどちらも、すべてのコレクションに対してクエリを実行できないという欠点があります。ただし、本質的にすべてのクライアント間で共有されるいくつかのコレクション (ログ、統計など) に常にアクセスしたい場合があるため、これらを分離するという追加の負担が発生します。

そのため、通常はオプション 1 を選択します。

于 2011-11-29T08:57:10.560 に答える