2011-07-14 29 views
0

私は自分のサイトに「お気に入り」機能を実装しようとしていますが、私はこのデータをどのように保存するかについて考えていました。できるだけ私がしたいことは、ユーザーが好きなものを持ってDBに保存することです。データを使って検索結果をパーソナライズすることができます。クッキーとセッションを使用する「お気に入り」機能

ログインしていない状態のお気に入りとログインした状態の間でスムーズに移行するようにしています(匿名でお気に入りを保存できるようにしていますが、転送中のログ/彼のアカウント)

どうすればこのデータを長期間保存することができますか?私は現在DB暗号化されたセッションを使用しており、セッション時間を延長するか期限切れにすることを考えていました。それはおそらく何かセキュリティ上の問題につながるでしょうか?

私は助けていただきありがとうございます。

乾杯。

+0

「あなたのお気に入りのものを持っていますか?」とはどういう意味ですか? 「もの」とは何か?ページ?カテゴリ?また、セッションが(期限切れに設定されていなくても)期限切れになる可能性があるため、このデータをデータベースに格納することもできます。そのようなデータを保持するためにクッキーを信頼しないでください。さらに、別のコンピュータを使用してログオンすると、お気に入りがそこに存在するようにしますか? – Matthew

答えて

1

あなたが望むものは、M:Nの関係(厳密にはデータベースの観点から)であるため、登録ユーザーが「何か」をお気に入りに設定できることです。テーブルをお勧めしますこれらの関係を保存する、すなわちユーザーとトピックのテーブルを持っていると仮定すると、SQLは次のように希望:

create table favorite(user_id integer not null references user, topic_id integer not null references topic); 

は、少なくともこれは、ほとんどのDBの本が何​​を教えてくれますものです。ユーザテーブルを持っていない場合(あなたがお気に入りにしたい "何か"のものを持っていると仮定します)、システムにログインするたびにユーザに割り当てたIDを保存することができます。ホープは助けになったと思っています。

1

匿名セッションから実際のユーザーを作成します。ログイン資格情報を持たずにデータベースに保存し、お気に入りや他のものを自分のユーザーIDに関連付けます。クッキーをクリアする前にサインアップすると、既存のユーザーIDにログイン/プロフィールを追加するだけで、作成したすべてのお気に入りは既に適切な場所にあります。ログインしているユーザーとログアウトしているユーザーの2つではなく1つのシステム。

関連する問題