:)
Я создаю аудио библиотеку с функцией поиска. В разговоре с клиентом мы выяснили, что у дорожки должна быть возможность иметь тег (например, жанр / mood / et c), но тег также может иметь псевдонимы (например, при поиске joyful
вы найти треки с тегом happy
), который я называю search terms
в приложении. Поэтому, когда кто-то выполняет поиск в приложении, запрос к базе данных будет выглядеть так:
search_terms -> search_terms_tags -> tags_tracks -> tracks
Это кажется действительно неэффективным, и я подозреваю, что это, скорее всего, негативно повлияет на производительность панели поиска. Я также рассматриваю другие варианты, такие как хранение тегов и поисковых терминов в одной таблице или хранение всех псевдонимов тега в одной ячейке. Но эти решения кажутся чуть менее перспективными. Возможно, в будущем я захочу использовать таблицу поисковых терминов для других целей, например для оптимизации большинства поисковых терминов, связывания их с другими объектами в приложении и т. Д. c. Но, конечно, если бы это сильно повлияло на производительность, я бы go для такого решения.
Я довольно новичок в создании функции поиска, поэтому мне очень интересно узнать, как это обычно решается.
Спасибо!