2012-01-15 5 views
1

私は少しアーキテクチャの問題があります。
私のサイトのユーザーは登録でき、userIDに基づいてサイトにログインすると、ユーザーをプロフィールページ(Facebookなど)にリダイレクトします。
このページから他のユーザーをクリックしてプロフィールページにアクセスできます。
友だちのプロファイルページにアクセスすると、そのページのいくつかのリンクにアクセスして、この友だちの詳細(友人リスト、画像、情報など)を表示できます。
私が今やっていることは、ユーザーが彼の友人をクリックして私がセッションでfriendIDを保存したときです。 そして、私が何かにアクセスする必要があるとき、私はまずセッションからデータを取得して行きます。
このアプローチは良いか悪いのだろうか?
それは動作しますが、より良いアプローチがあるのでしょうか?私はサイト上でユーザーを追跡するためにセッションを使用しています - 良い方法があります

答えて

1

IMHO、いいデザインではありません。これは、グローバル変数を使って "現在の友人"を参照するようなものです。明らかに、これは、例えば、別のブラウザのタブまたはウィンドウで「友人情報」ページを開くことによって、2人の異なる友人に関する情報を一度に見ることを不可能にする。

また、「友人情報」ページと「友人リスト」ページを結合します。つまり、友人情報ページにリンクしたい他のページでは、その友だちIDをセッションに入れなければならず、友だち情報を見るためにこれらのページの1つを通過しなければなりません。ユーザーがフレンド情報ページをブックマークしてセッションを閉じ、ブックを再度開いてブックマークを使用すると、失敗します。

最後に、アプリケーションをステートフルにしますが、「フレンドリスト」ページをfriendInfo?friendId=<the friend ID>などのリンクを使用して単に「フレンド情報」ページにリンクさせることによってステートレスに留めることができます。

+0

そして、例えばfacebookは追跡データを保持します。私がfb(fb.com/someFriend)のfrienページにアクセスし、URLから「someFriend」を削除して情報をクリックすると、その友達の情報が得られます。どこからIDデータが読み込まれましたか? – 1110

+0

私はFacebookアカウントを持っていない世界中のこの4人の開発者の一人です。ごめんなさい。友人の* JohnSmith *のURLが 'fb.com/JohnSmith'の場合は、そのURLから友人(JohnSmith)のIDを抽出します。 –

+0

私はちょうどいくつかの機能を複製するために持っている:)それは私がクリックしたユーザー情報をまだ知っているURLからJohnSmithを削除する場合、それは私を混乱させるものです。 – 1110

関連する問題