SELECT record.id, count(*)
FROM record
JOIN record_tags ON (record_tags.record_id = record.id)
WHERE record_tags.tag_id IN (1,2,3) GROUP BY 1 ORDER BY 2 DESC
подходящестиудачный термин для нечёткой выборки))
Он просто предложил свой вариант организацииНе свой вариант, а так как это делается по классике, действительно хотелось бы услышать "не мой" - свежий прогрессивный новый вариант хранения. Прошу, маэстро!
Опять же смотря где это используется и какой вообще объем данных.Ну вот чтобы не быть голословным - на БОЛЬШИЕ объемы данных. То есть реально вот - миллионы записей на десятки миллионов тегов. Внимательно слушаю.
Thundercat не дал ответ на вопрос автора. Он просто предложил свой вариант организации, причем вариант, который приходит наверно самый первый на ум любому, кто столкнется с такой задачей.Вот отсюда и поподробнее - альтернативные варианты организации плс.
Мы вроде говорили про то как организовать хранение. Шардирование и кеш это немного из другой области и никак не относятся к организации структуры хранения.
Ну вот чтобы не быть голословным - на БОЛЬШИЕ объемы данных. То есть реально вот - миллионы записей на десятки миллионов тегов. Внимательно слушаю.
А вопрос был вообще в другом, ну по крайней мере как я его понял.Видимо вы его не правильно поняли. Черным по белому:
как оптимальнее реализовать поисковую выдачу?Ответ - никак, так как критерий оптимальности в данном построении неприменим.
не будет же он все переписывать, перепарсивать и переделывать.Как мы видим - отмечен решением ответ с предложенной мной структурой, подозреваю что будет. Кроме того вполне возможно автор малоопытен, но вполне адекватен, и сначала спросил как лучше организовать, а затем взялся за заполнение. В итоге поменять структуру не составит труда.
Такой вариант рабочий, до поры до времени.вот на это я попросил привести альтернативу хранению в мэни-ту-мэни. И чтобы не возникало разночтений, так как вы упомянули что зависит от количества, написал что записей МНОГО. Но внятного описания какой-то ни было иной структуры хранения все-таки не увидел.