У меня есть таблица сообщений на форуме, и я хочу улучшить базовую функциональность поиска, так как мы получаем много пользователей со всего мира, которые не являются носителями английского языка, и у них будут проблемы с поиском результатов, если они пишут неправильно.Текущий поиск по форуму точен.
Какой из этих дизайнов будет работать лучше?Предположим, что база данных содержит 500 000 записей, и поиск часто используется.В идеале мне бы хотелось, чтобы он просматривал каждую запись.
Design One
Вдоль каждой записи на форуме я храню soundex_post, который содержит все данные soundex.Когда поиск выполняется, он озвучивает все поисковые термины и выполняет операцию LIKE над полями soundex.
Design Two
Я нормализую его.Каждый код soundex хранится в новой таблице tblSoundexCodes.Тогда есть таблица tblForumPostSoundexCodes:
ID |Post_ID |SoundexCode_ID |Count
Затем, когда ищется soundex, я просто извлекаю все Post_ID, где SoundexCode_ID = n
Правильно ли, что второй метод будет значительно быстрее, ночто его будет намного сложнее поддерживать (например, когда люди редактируют сообщения).