2016-03-18 21 views
0

私は最近、ユーザーが閲覧しアクセスできるページを制御するセキュリティシステムを構築しました。システムのすべてのページのすべての値がログイン時にセッション変数に格納されるように構築されました。同じ情報いつphpでセッション変数を使うべきですか?

このような場合は、セッション変数を使用するのが正しいと感じます。しかし、それが1ページだけで使用される値だったら、代わりにデータベースからアクセスします。

これら2つの極端な点の間で、セッション変数に値を正しく入れようとしていますか?または、あなたが使用しているものの代わりに、ユーザ名のように、保存しているものに基づいていますか?

+0

キャッシングレイヤーのメリットがあると思います。ユーザーがこれらのページにアクセスしない場合、すべてのページのデータを事前にロードすることは、リソースの無駄です。 – ceejayoz

+0

@ceejayozヘッダーとページに表示するリンクとメニュー項目を知るためのビットフラグの配列のみを格納しています。ページコンテンツ自体については何も、私が不明な場合申し訳ありません。 – user3700940

答えて

0

セッション変数は、データベース値がサーバーに格納されているように、サーバーに格納されます。

違いは、データベースのように個々の情報を照会するのではなく、一度に「行」(つまりセッション)全体を読み込んでいることです。

データベース内の単一の行にすべての値を格納して照会するだけで、同じパフォーマンスの結果を得ることはできません。 (注:これをセッション変数またはデータベースフィールドで行うのは悪い考えです)最終的に、両方のデータソースはサーバーのストレージから発生します。

言われていること

...

セッション変数は伝統的に、クライアントがすべてで、前回のログイン時間だったときなどに記録されているかどうか、例えば、クライアントの状態に関連した一時的な値を格納

データベース変数は、その特定のクライアントセッションを超えて保持したいものを格納する必要があります。

+0

すべてのページの読み込み情報をデータベースに照会せず、解析する必要があるのは、私の例のように必要な情報を永続化するためにセッション変数を照会するだけです。 – user3700940

+0

2つは同等のデータ量で同等です。あなたはセッション変数の取得がより速いと思いますか?それはまだどこかでサーバーの記憶装置から読み取られ、クライアントに解析されるために全体として提出される必要があります。 – hofan41

関連する問題