2012-07-17 31 views

回答

1

有1001種解決此問題的方法。其中一個就是使用一個至少包含2個字段的數據庫表來跟蹤查詢:date和ip(我會將實際查詢添加爲用戶的第三個字段並可能是(登錄的)用戶標識做查詢)。然後,您可以輕鬆地獲得每個IP的計數(每天/每週/每月/年/不計),甚至可能由用戶(確保您創建正確的索引!)執行搜索查詢之前,然後通知用戶他們已經結束了配額。作爲獎勵,您可以獲得搜索記錄(按日期和IP,甚至可以是用戶),您可以使用這些記錄進一步分析(大多數搜索的關鍵字,最活躍的用戶/ IP等)。

你也可以採用其他方法,例如在內存中保存IP +計數器(比如Dictionary<ip, int>),甚至可以存儲在memcached之類的應用程序中,等等。這些方法是無數的,需要適合您的要求(您根本沒有指定)。

重置計數可以如將計數器設置爲0(通過用戶界面ofcourse)那樣簡單,例如, MyQueryDictionary[userip] = 0或「複雜」,如「提高數據庫表中特定IP的閾值」以及其間的所有內容。