kunitsuji
tsuji****@m-s*****
2009年 7月 23日 (木) 11:34:32 JST
kunitsujiです。 decoyさん。 をを、こんな感じのものが欲しかったんですー。 autoloadで配列でわたせるんですね。。。知りませんでした(笑) 参考にさせていただきます! >decoyです。 > >私の場合は下記のような感じで更新系と参照系を分けています。 > >1. >system/application/config/autoload.php に通常であれば >$autoload['libraries'] = array('database'); と書くところを >下記のような感じで書く。 > >$autoload['libraries'] = array( > 'database' => array( > 'db' => 'Master', > 'slavedb' => 'Slave', > ), >); > >2. >system/application/config/database.php に繋ぎたいDBサーバの数だけ設定を書く。 > > >$db['Master'] = array( >・・・ >); > >$db['Slave'] = array( >・・・ >); > >3. >Loader.phpを継承したMY_Loader.phpを作成し、 >Loader::databaseやLoader::_ci_autoloader辺りをオーバーライドし、 >2で設定した数だけDBに接続するようにする。 > > > >こうすることで、モデル辺りで更新系の処理を行いたければ、 >$this->db の後にSQLを書いたり、$this->db->insert(); したり、 >参照系の処理を行いたければ、$this->slavedb の後に >SQLを書いたり、$this->slavedb->get(); したりすればOKです。 > >以上、ご参考まで。 > > >// decoy > >----- Original Message ----- >From: <usagi****@ezweb*****> >To: <codei****@lists*****> >Sent: Tuesday, July 21, 2009 8:24 PM >Subject: Re: [Codeigniter-users] CIのDBクラスを使った場合の処理で質問 > > >> kunitsujiです。 >> やはり、DBクラスのラッパーを作って、 >> アクティブレコードでインサートとか書いたら、そこで切り分けるしかないか >> な。。。 >> >> 誰もやってないんですかね。 >> >> ちなみにPNEは、リード、ライトの上で、処理関数を使ってますが、そこで吸収して >> ますよ。少し凄いですね(笑) >> まあ、PEARのDBクラスをラッピングしてるんですが。 >> >>>安藤です。 >>> >>>2009/07/21 19:54 に <usagi****@ezweb*****> さんは書きました: >>>> kunitsujiです。 >>>> 安藤さん、どうも。 >>>> 例えば、最初1つのDBでアプリを動かして、あとで1台追加する場合、アプリ側は >>>> 意識をしたくないんですよ。 >>>> >>>> 設定に一つ足すだけで、フレームワーク側が吸収して欲しいのです。 >>>> CIを考えた場合は確かに、CIの責務ではないように感じますね。 >>>> アプリケーションのベースでやるべきかな。 >>>> MyNETS2のベースでやるべきだとは思いますが、DBまわりって継承簡単に出来ない >>>> 仕組みなんですよね(笑) >>> >>>単純に考えるなら、本でも書きましたが、 >>>read系、write系ってモデルを切り分けることでしょうかね。 >>>これだと、OpenPNEと一緒になってしまいますがw >>> >>>ちょっと考えましたが、writeでもreadはするので、共通モデルの >>>汎用性ががた落ちになりそうですね。 >>> >>>//安藤 >>> >>> >>>> >>>>>安藤です。 >>>>> >>>>>2009/07/21 19:36 に kunitsuji<tsuji****@m-s*****> さんは書きました: >>>>>> kunitsujiです。 >>>>>> >>>>>> CIのDBクラスを使って、接続先DBを変えることができます。 >>>>>> たとえば、MySQLでマスターとスレーブを切り替えるような場合ですね。 >>>>>> >>>>>> この時に思ったのですが、 >>>>>> subのDBに記述がある場合、自動的に更新系の処理はdefault、SELECT系の処理 >>>>>> は >>>>>> >>>>>> sub、見たいなことってできないもんでしょうかね。。。 >>>>>> >>>>>> 実際ほとんどのアプリではdatabaseをつかうので、autoloadで読み込みしたり >>>>>> し >>>>>> >>>>>> てますので、都度modelで呼び出すのもどうかと思うし。 >>>>>> >>>>>> このあたりうまく処理してるひといますか? >>>>> >>>>>この辺って、フレームワーク側でやるなら明示的にやる場合が多いと思います。 >>>>>自動だと、誰もが望む構成になりえないと言うか。 >>>>> >>>>>自動的ってなると、負荷分散側に任せたほうが良くないでしょうか? >>>>>#クラスタリング >>>>> >>>>>//安藤 >>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Codeigniter-users mailing list >>>>>> Codei****@lists***** >>>>>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>>>>> >>>>> >>>>> >>>>> >>>>>-- >>>>>------------------------------------------------------------------------- >>>>>--------------- >>>>>株式会社 音生 >>>>>安藤 建一 >>>>>愛知県名古屋市中区金山5丁目11−6 >>>>>名古屋ソフトウェアセンタービル1F >>>>>TEL : 052-884-0017 >>>>>FAX : 052-884-0018 >>>>>URL : http://neo-navi.net/ >>>>>------------------------------------------------------------------------- >>>>>--------------- >>>>> >>>>>_______________________________________________ >>>>>Codeigniter-users mailing list >>>>>Codei****@lists***** >>>>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>>> >>>> _______________________________________________ >>>> Codeigniter-users mailing list >>>> Codei****@lists***** >>>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>> >>>_______________________________________________ >>>Codeigniter-users mailing list >>>Codei****@lists***** >>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >> >> _______________________________________________ >> Codeigniter-users mailing list >> Codei****@lists***** >> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > >_______________________________________________ >Codeigniter-users mailing list >Codei****@lists***** >http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users