Еще одна возможная идея (которая может быть глупой, я не уверен): вы можете добавить две таблицы MySQL, одну для SearchTerms (например, с колонками SearchTermID (число) и строку для SearchTerm), а затемтаблица запросов, которая имеет SearchID, SearchTermID (который прикреплен к таблице SearchTerms с использованием столбца SearchTermID и, например, SearchDateTime для записи, когда поиск произошел).Затем каждый раз, когда кто-то выполняет поиск, проверяйте таблицу SearchTerms, чтобы узнать, был ли ранее выполнен поиск по этому термину, и, если это так, добавьте запись в таблицу поиска.верхние 5 поисковых запросов, которые использовались на этой неделе "чем-то вроде SELECT SearchTerm,Count(SearchID) FROM SearchTerms INNER JOIN Searches ON Searches.SearchTermID=SearchTerms.SearchTermID WHERE SearchDateTime > [today minus a week, or something] LIMIT 5
Я не уверен, что было бы хорошими показателями, но я думаю, что один из SearchDateTime будет полезен для запроса" 5 лучших ",И еще один в строке в SearchTerms, так как вы будете проверять этот столбец при записи поисков.
(Возможно, было бы также хорошо иметь столбец NumberOfTimesSearched в таблице SearchTerms, но вы всегда можете рассчитать его посуммирование количества раз, когда соответствующий SearchTermID появляется в таблице поиска)