ホームページ >バックエンド開発 >PHPチュートリアル >MySQL の設計、スクリプトの実行間隔の統計。
RSS プログラムを持っていますが、RSS を購読しているのが他の Web サイトのサーバーなのか、それとも一般の顧客がブラウザを通じて開いて実行しているのかを計算したいと考えています。
現在のアイデアは、各 IP アドレスのアクセス頻度をカウントして区別することです。他の Web サイトのサーバーが私の RSS を購読する場合、自動プログラムで定期的に実行する必要があります。実行間隔は 60 分ごと、または 90 分ごとなど一定の間隔です。
$ip=$_SERVER['REMOTE_ADDR'];
この場合、mysql データベースはどのように設計すればよいでしょうか?現在のアクセス時間 - 前回のアクセス時間; 前回のアクセス時間 - 前回のアクセス時間 (各スクリプトを開く完了時間の誤差はプラスまたはマイナスであることも考慮する必要があります)数秒) ... この状況を 5 回カウントすると、その IP は自動プログラムであり、次回からカウントする必要はないと判断できるでしょう。
2つのフィールド: ip、time (unix timestamp)
判定条件: 同じipの場合 (max(time) - min(time)) / count(*) = avg (時間) - min(時間)
アルゴリズムの基礎: 等差数列の性質
実際には、User-Agent 情報も判断できます。
2つのフィールド: ip、time (unix timestamp)
判定条件: 同じipの場合 (max(time) - min(time)) / count(*) = avg(time) - min(time)
アルゴリズムベース: 等差数列の性質
これは間違いなくサーバーであり、別のテーブルに記録される必要があります(サーバーリストなど)。
まず、モデレーターは、サーバーかどうかが判断されないアクセスがあるたびに、IP とアクセス時間がテーブル (たとえば、アクセスログ) に書き込まれると述べました。各書き込み後に、サーバーがアクセスするかどうかを判断します。 (通常、判断には数回かかります)
「はい」の場合は、サーバーリストにレコードを挿入し、アクセスログ内の IP に対応するレコードを削除します。
このサーバーに再度アクセスするときは、まずサーバーリストにこの IP があるかどうかを確認し、そうである場合はアクセスログに書き込まれません。
さらに、ユーザー エージェントを使用して、サーバー アクセスが利用可能かどうかを判断できます。
サーバーアクセスとは何ですか?
RSS を購読するサーバーは何ですか?
または、どの Web サイトが独自のデータベースに RSS を保存しますか?
さらに、ユーザー エージェントを使用して、サーバー アクセスが利用可能かどうかを判断できます。
サーバーアクセスとは何ですか?
RSS を購読するサーバーは何ですか?
または、どの Web サイトが独自のデータベースに RSS を保存しますか?
なんて言うの?どのような方法を使用すればよいでしょうか?フィールドは2つで大丈夫でしょうか?
したがって、2 つのフィールドで仕訳帳のニーズを満たすことができます
分析結果も同じテーブルに保存するかどうかは、あなた次第です。その場合は、もちろんいくつかのフィールドを追加する必要があります
したがって、2 つのフィールドで仕訳帳のニーズを満たすことができます
分析結果も同じテーブルに保存するかどうかについては、あなた次第です。その場合は、もちろんいくつかのフィールドを追加する必要があります
アクセス情報を登録する、もちろん日記です
挿入するだけで、分析や計算は通常1回の更新だけで済みます
上手くやればviewも使えます
登録を日記として扱わないと、最初に場所を選択してから更新する必要があります 変更します
最後に分析して計算します
アクセス情報を登録します、もちろんそれは実行中のアカウントです
挿入するだけで、分析と計算は通常 1 回の更新だけで済みます
そうすればまあ、ビューを使用することもできます
アカウントを実行するための登録とみなさない場合は、最初に選択して配置し、次に更新して変更する必要があります
、最後に分析して計算する必要があります