3

サービスとしての複数のクライアント用の Web (Rails などの MVC) アプリケーションを検討してください。

これをどのように設計するのですか?

  • クライアントごとに 1 つのアプリケーション インスタンスですか? (+ クライアントごとに 1 つのデータベース)

  • すべてのクライアントに対して 1 つのインスタンス (+ すべてのクライアントに対して 1 つのデータベース)

前者はシンプルだけど… 「非効率」。後者はどうですか?(ベスト プラクティス、設計パターン) クライアント データを分離する方法は? 例: クライアント "1" のワーカー "A" には 2 つのドキュメントがあり、クライアント "2" のワーカー "B" には 3 つのドキュメントがあります。他のユーザー (およびクライアント) のデータを保護するためにモデルの関連付けを作成する方法は? すべてのクエリを Client モデルに結合することは、良い解決策ではないと思います。

4

2 に答える 2

0

このMSDNの記事では、マルチテナントデータアーキテクチャについて詳しく説明しています。

おそらく明らかですが、とにかく注意します。クライアント側のセッション情報をCookieに格納するRailsインスタンスのデフォルト構成は、すべてのアプリケーションインスタンスが要求を同等に処理できるようにするのに役立ちます。

このシリーズの別の記事も、監視などの必要な共有サービスを特定する上で有益です。

于 2011-05-10T12:44:48.667 に答える
0

Ruby on Rails のマルチテナント アプリに関する以前の回答を参照することをお勧めします。

ユースケースによって異なりますが、これを処理する最も簡単な方法は、特定のアプリケーションにスコープを設定した単一のデータベースです。要件/予算に応じて、そこから向かうことができます。

私はそのリンクで詳述されているpostgresqlスキーマシステムの大ファンです:P

于 2010-04-27T09:00:25.847 に答える