1

私は現在、ユーザーとその組織の機密 (ish) データを保持する可能性がある、かなり基本的な Web アプリを作成しようとしています。

ユーザーが入力したすべてのレコード データを 1 つのデータベースに保存し、すべてのアプリ データを別のデータベースに保存するつもりでした。

コード エラーとデータ侵害のリスクを最小限に抑えるために、アクティブ レコード キャッシングを使用して、アクティブ レコード クエリに標準の「where」ステートメントを自動的に追加する機能を調査しました。

$this->db->start_cache();
$this->db->where('user_id',$_SESSION['user_id']);
$this->db->where('org_id',$_SESSION['org_id']);
$this->db->stop_cache();

これは素晴らしいことであり、多くの頭痛の種から解放されます。ただし、ドキュメント http://codeigniter.com/user_guide/database/active_record.html#cachingによると、更新にもこれを使用できるはずです(setメソッド):

注: 次のステートメントをキャッシュできます: select、from、join、where、like、group_by、having、order_by、set。

active_record クラス "DB_active_rec.php" を見ると、いくつかのメソッド (select、where など) でキャッシュを提供するコードが存在します。

if ($this->ar_caching === TRUE)
{
...do caching stuff

私が言えることから、これは set メソッドに欠けているようです。

私が求めている答えはわかりませんが、うまくいけば、私は間違っているだけです!

4

1 に答える 1

1

update ステートメントをキャッシュすることはできません。それはあまり意味がありません。更新$this->db->where()では、本質的に選択であるメソッドを使用します。その部分はキャッシュすることができ、そうすることで select ステートメントを節約できます。

于 2012-07-10T11:57:20.943 に答える