Я бы имел данные в одной базе данных. Если данные становятся большими или я знаю, что они будут огромными, я назначил бы идентификатор каждой компании, адресу и т. Д., А затем имел бы другие таблицы, которые ссылаются на эти данные.
Регулярные выражения будут необходимы, только если пользователь сможет определить, что он хочет искать:
бизнес: Аргос
Но что тогда произойдет, если они захотят Argos в Манчестере (извините, я англичанин), может быть, тогда определите местоположение пользователя на основе его IP , но что произойдет, если они скажут:
бизнес: Аргос Шотландия
Теперь вы не знаете, есть ли в компании два слова или есть место рядом с ней. Все это необходимо учитывать.
P.s Извините, если это не имело смысла.