Чтобы получить простой список связанных элементов на основе тегов, основные решения выглядят так:
3 таблицы, одна с элементами, одна с тегами и одна с соединением. Таблица соединений состоит из двух столбцов, по одному для каждого идентификатора из остальных таблиц. Запись в таблице соединений связывает тег с элементом, помещая их соответствующие идентификаторы в строку.
Теперь, чтобы получить этот список связанных предметов.
получить все элементы, которые имеют хотя бы один тег с исходным элементом. Обязательно извлекайте теги вместе с элементами, а затем используйте простой механизм оценки, чтобы определить, какой элемент разделяет наибольшее количество тегов по сравнению с исходным. каждый тег увеличивает отношение релевантности на единицу.
В зависимости от ваших привычек тегирования, было бы разумно добавить некоторый контр-механизм, чтобы не допустить путаницы значимостью больших общих тегов. Чтобы достичь этого, вы могли бы придать больший вес меткам ниже определенного порога приборов. Пороговое значение, которое обычно хорошо работает для меня, это total_number_of_tag_appliances / total_number_of_tags, в результате чего получается среднее количество устройств. Если число тегов appliance меньше среднего, отношение релевантности увеличивается вдвое.