2009-07-26 10 views
3

誰かが私は私のデータベースPHP/MySQLのウェブサイトでどのようにログを記録するのですか?

明らか
  1. にこれを記録したいクイック検索機能を使用して私のウェブサイトを検索したとき、私は私がベースの「タグクラウド」を作成することができます私のユーザーが
  2. 探しているものを見てみたいですこれは、この情報をログに記録する最善の方法だった場合、私は思っていた、idterms:これらの検索

に私は2つのフィールドで、現時点ではテーブルsearchtermsを持っています。しかし、Termsは少し冗長になりつつあります。

関連するスクリプトの手がかりやリンクはありますか?

みんなありがとう

+0

両方の有用な回答ですが、まずGoogleアナリティクスを調べます。サーバー負荷を最小限に抑えるために何かをやってください! – bluedaniel

答えて

2
検索された回数を集計します

私は試していませんが、Googleアナリティクスはユーザーがあなたの検索ボックスに入力したものを追跡するオプションを提供しています。表示には開発者APIがあります。

警告はこれがすべてjavascriptであることです。利点は、サーバーの負荷を軽減できることです。

あなたが探していたものではないかもしれませんが、言及する価値があります。

+0

これは、実際には、問題のための良い解決策です。 –

3

何(すべて小文字、無アクセント、...のように、おそらくいくつかの「正規化」の方法で)用語を格納するテーブル、およびそれらの用語が検索された店舗に別のテーブルについてために ?

正規化の問題は、「単語」と「単語」が2つの異なる用語として表示されることを避けることです。 "éléphant"と "elephant"と同じ、btw。最後を知っその後

terms 
    - id 
    - word 

terms_searched 
    #id _term 
    - time_search 

は、用語を検索、またはほとんどの用語を検索、あなたが唯一の希望を指定するには、where句を持つかもしれない

select id, term, count(*) 
from terms 
    inner join terms_searched on terms_searched.id_term = terms.id 

のように、単純なSQLクエリだけの問題です最近の検索を考慮に入れるか?

そして、あなたのテーブルが本当に大きくなり、クエリに参加した場合には、パフォーマンスを傷つけ開始し、あなたが条件テーブルの「num_times_searched」を入れて、非正規化を想定することができ、その用語が

関連する問題