1

ゲーム用に次の設定があります。

すべてのユーザーが含まれる 1 つのデータベースと、チュートリアルを完了していないユーザーが含まれる 1 つのデータベース。最初のデータベースには、ユーザー「Gogu」がチュートリアルを完了したかどうかを示すフラグがあります。そうでない場合は、2 番目のデータベースに接続してデータを取得する必要があります。いくつかの調査の結果、Zend Framework を使用して 2 つの異なるデータベースに接続することがわかりました。

問題は、ユーザーの 5% だけがチュートリアルの進行状況にあるため、両方の接続を維持するのは役に立たないため、コントローラー内で接続する必要があるだけで、必要なものを取得して接続を閉じることです。

これを行う方法はありますか?

4

1 に答える 1

3

Zend_Db は接続を「遅延読み込み」するため、2 つの接続について心配する必要はありません。ZFマニュアルから:

Adapter クラスのインスタンスを作成しても、すぐには RDBMS サーバーに接続されません。アダプタは接続パラメータを保存し、最初にクエリを実行する必要があるときにオンデマンドで実際の接続を確立します。これにより、Adapter オブジェクトの作成が迅速かつ安価になります。アプリケーションが処理している現在のリクエスト中にデータベース クエリを実行する必要があるかどうか確信が持てない場合でも、アダプタのインスタンスを作成できます。

http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.connecting.getconnection

参照した受け入れられた回答で使用されているメソッドは、ブートストラップから $db->getConnection() を呼び出すことに注意してください。これは、遅延読み込みの目的に反するため、お勧めできません。おそらくより洗練されたアプローチである Zend_Application_Resource_Multidb を検討することもできます。

http://framework.zend.com/manual/en/zend.application.available-resources.html#zend.application.available-resources.multidb

于 2012-07-03T07:21:19.550 に答える