この質問は...何千回を頼まれましたので、あなたがそれに答える/読み込みをスキップすることにした場合、それは不公平ではないのですが、私はまだ人が見ると私のアプローチにコメントしたいと思いましたFourSquareのような活動フィードを必要とするサイトを構築する。ニュースフィードへの私のアプローチが間違っている方法は何ですか?</p> <p>私は」...
私のサイトには、この機能があり、永遠に保存する必要はありません。
したがって、event_typeとuser_idをMySQLテーブルに書き込みます。テーブルに新しいイベントを書き込む前に、古い行、不要な行をすべて削除します(合計行数をカウントし、event_idをすべて冗長化した行より少なくして削除します)。私はテーブルを剪定し、イベントが発生するたびに新しい行を書きます。フロントエンドでは、ユーザーが生成されたテキストがない場合NULLある別のuser_text列...
があります、私はGET経由でPHPファイルをチェックすることにjQueryを持っているユーザーが持っているすべてのx秒サイトオープン。 jQueryは、受信した最新の更新IDで要求を送信します。私のバックエンドで生成された<div>タグには、 "id"属性がMySQLの行IDとして設定されています。私は、メモリ内の非常に小さなint型の値で変数を格納から絶対にないパフォーマンスへの影響はありません推測してもこの方法では、私が機能を持っている...、メモリ内last_received_id保存する
を持っていませんevent_typeとuser_idに応じて「更新テキスト」を生成します。jQueryから渡します。user_text列が空であるかどうかを確認します。更新テキストはjQueryに返され、新たに受信したイベント<div>をいくつかのエフェクトとともにフィードに追加すると同時に、 "テールエンド"イベント< div>をエフェクトとともに取り除きます。
もし私が(もっと重要なのは、クライアント)、私は自分のデータベース(または別のもの)に「イベントアーカイブ」テーブルを作成して、それらの冗長な行をすべて削除してから削除することができます。この方法では、イベント情報は永遠に保存され、ライブサイトのパフォーマンスには影響しません。
私はCodeIgniterを使用していますので、繰り返しコードはどこにもありません。関連するすべての関数は、それぞれライブラリとモデルのLiveUpdatesクラスに入っています。
私はKISSイデオロギーに固執しながら問題を解決しているので、私はそれをやっている方法にかなり満足しています...しかし、まだ誰かが、より良い方法を示すいくつかのリソースを教えてくださいそれをするために?この件に関するGoogleの検索では、あまりにも多くの記事/ SOの質問が明らかになりました。私はすでに彼らを辿ってきた他の開発者の経験から恩恵を受けるといいです...
あなたの意見では、live_updatesテーブルの主キーupdate_idは「適切なインデックス」になりますか? –
すべてのことを読んでいただき、ありがとうございました:)。 –
@aditya更新しました。 – ErikE