Я бы начал с отделения бизнес-потребностей от солутона и любых потенциальных технических проблем (IE, производительность базы данных).
Деловая потребность должна четко сформулировать проблему и каков ожидаемый результат.Например, вам может потребоваться сохранить всю историю поиска, но отображать только последние 50 в хорошо видимом разделе вашего интерфейса.Остальная часть истории поиска может быть отображена в некоторой форме группировки (IE, год и месяц) и отображаться только в пользовательском интерфейсе из отдельного экрана / отчета.
Понимание этой необходимости покажет вам наиболее простуюи, скорее всего, подходящее решение.Помните, что вы всегда можете разделить данные по вертикали или горизонтали, если производительность является проблемой в будущем.Используя приведенный выше пример сохранения только последних 50 запросов, вы можете создать решение для нескольких таблиц с одной таблицей, содержащей самую свежую и текущую информацию, и другими таблицами для архивированных поисков.Затем вы можете сохранить архивированную историю поиска в какой-либо форме типа данных XML.
Надеюсь, это поможет