0

最近閲覧したプロファイルのリストを Cookie に保存したいと考えています。
ゲームのキャラクター ID (World of Warcraft) を入力して、キャラクターのプロフィールを表示できるサイトがあります。
文字 ID は、名前 (Unicode、最大 15 文字)、サーバー名 (Unicode、最大 25 文字)、およびゾーン (2 文字、latin-1) で構成されます。
すべてのブラウザーが Unicode Cookie に対応しているわけではないため、最近表示した最大 5 文字を Cookie に保存し、値を URL エンコードします。

これにより、この Cookie の長さは 2 つの 500 文字になります。

質問:これは合理的なアプローチですか? 評価していただきたいその他のソリューションをいくつか紹介します。

  1. データベースで定義されているように characterId を保存します。長所: Cookie のサイズが小さい、短所: a) データベースから文字を削除できる (データベースは更新を高速化するためのキャッシュにすぎない)、b) データベースのインデックスを再作成できる。
  2. 名前+サーバー+ゾーンハッシュを保存し、データベースでハッシュで検索します。短所: a) 繰り返しますが、データベースから文字を削除できます。長所: 再インデックスに耐性があります。
  3. ユーザーがアカウントを作成してそこに保存する必要があります。短所: アカウントを作成するのが好きな人はいません。

現在の解決策 (URL エンコードされたリストを Cookie に保存する) で十分でしょうか?

編集:「最近の文字」リストは、利便性のためだけにあることに注意することが重要です。それがクリアされても、まったく問題ありません (一部のアプリケーションでは「最近のファイル」に似ています)。

4

2 に答える 2

0

個人的には、ID を Cookie に保存し、残りのデータをデータベースに保存したいと考えています。ユーザーのセッション中にデータを削除できる場合は、ユーザーのセッション専用の新しいテーブルを作成し (session_id を使用)、そのID を Cookie に保存します。そのテーブルに日時を入力し、定期的に (cron ジョブのように) x 日より古いレコードを削除します。

于 2011-03-29T15:01:01.570 に答える
0

現在のソリューションで問題 (または制限) が発生していない場合は、そのままにしておきます。文字全体を保存してそのデータを提示すると、データが古くなる可能性があることに注意してください。

ID を Cookie に保存し、サーバー側のロジックを実行して、ID のリストから使用可能な文字を返します。データベースに存在しない ID をスキップして、ID のリストに再度表示することができます。

于 2011-03-29T15:03:13.833 に答える