在我的网站(www.wyska.net)上有以下表格:
标签
- id
- 名称
- uses-在表
_tag_wyska
中提及标记的次数
_标签_wyska
- wyska_id
- tag_id
然后是目前不重要的表CCD_ 2。
由于表_tag_wyska
可以具有相同的wyska_id
和多个条目,我如何找到一个标签是否与其他标签一起使用,以及哪个标签最常用?这将是最好的方式吗?缓存它,或者有一个不同的表来保持最新或?
例如,wyska_id = abcd1234
具有以下标签:
- 政治
- 策略
- 民主人士
则CCD_ 6具有以下标签
- 策略
- 游戏
- 传奇联盟
则一个以上CCD_ 7具有以下标签
- 策略
- 游戏
- 人
我知道策略被使用了3次,游戏被使用了2次,其余的被使用了1次,但我需要知道的是,strategy
标签与单词game
被大量使用,所以我会将game
和strategy
关联在一起,例如,建议用户使用子搜索标签,或者找到聪明的方法来分析数据并创建动态类别,或者。。只是因为这是一个有趣的问题
如果你已经知道其中一个标签,你可以用它来寻找相似之处:
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_id,然后找到相同wyska_ids中计数最高的其他标签。