В моем приложении я хочу создать поле "универсального поиска", которое позволит пользователям выполнять общий поиск по любой из "информационных" данных в базе данных. Система является системой управления учетными записями, поэтому в идеале они смогут выполнять поиск адресов электронной почты, имен пользователей, идентификаторов и т.д.
Я искал в Интернете решение, но я еще не пришел к выводу, поэтому решил, что задаю вопрос о SO.
Какой лучший способ выполнить запрос "поиска" в базе данных и вернуть потенциальные результаты из нескольких таблиц?
Моя первоначальная мысль заключалась в том, чтобы выполнить запрос SELECT для каждой отдельной таблицы, используя подстановочный знак для каждого столбца поиска. Будет ли это правильный подход?
Я бы использовал специальную поисковую машину для такого "универсального поиска". Например, Sphinx, бесплатная текстовая поисковая система с открытым исходным кодом SQL.
A SELECT
запрос в каждой таблице приведет к очень низкой производительности, если база данных достаточно велика.