在我的网站(www.wyska.net)上有以下表格:
标签
_tag_wyska
_tag_wyska
然后是一个暂时不重要的表wyska
。
由于表格_tag_wyska
可以包含多个条目wyska_id
,我如何找到标记是否与其他标记一起使用以及哪个标记主要用于?怎么做最好的方法呢?缓存它或有一个不同的表来保持最新或..?
例如wyska_id = abcd1234
具有以下标记:
然后wyska_id = 1234abcd
具有以下标记
然后又有一个wyska_id = 7890defa
具有以下标记
我知道策略使用了3次,游戏使用了2次,其余的则使用了1次,但我需要知道的是strategy
标签主要用于game
这个词,所以我将game
和strategy
关联在一起,例如建议用户子搜索标签,或找到分析数据和动态创建类别的聪明方法,或者只是因为这是一个有趣的问题< / p>
答案 0 :(得分:0)
如果您已经知道其中一个标记,则可以使用它来查找相似之处:
SELECT tag.id, tag.name, COUNT(wyska_id) AS similarities
FROM _tag_wyska
LEFT JOIN tag ON tag.id = _tag_wyska.tag_id
WHERE wyska_id IN (
SELECT wyska_id
FROM _tag_wyska
WHERE tag_id = '$SELECTED_TAG'
)
GROUP BY wyska_id
ORDER BY similarites DESC
可能需要一些调整,但一般的想法是选择所有具有所需标签的wyska_ids,然后找到具有相同wyska_ids最高计数的其他标签。