Я бы предположил, что решение будет зависеть от того, как часто изменяются искомые данные, нужно ли их редактировать или нет, вы применяете ссылочную целостность в базе данных. Я думаю, что это делает схему более понятной, если вы поместите каждый тип поиска в отдельную таблицу.
Обычно я не создаю сущности для каждой таблицы поиска, но вместо этого загружаю большинство общих поисков в структуры, которые легко повторно используются приложением - например, для приложения asp.net я создам хеш-таблицы или упорядоченные словари, которые можно легко привязать к большинству веб-элементов управления.
И, к ужасу ужасов, я иногда создаю синглтон для управления доступом ко всем этим поискам, который может храниться как статические переменные или в кэше, в зависимости от требований.