如何找到"该值也主要用于该值"用标签表和对象表?

时间:2014-04-28 21:08:19

标签: php mysql

在我的网站(www.wyska.net)上有以下表格:

标签

  • ID
  • 名称
  • 用途 - 表_tag_wyska
  • 上提及标记的次数

_tag_wyska

  • wyska_id
  • TAG_ID

然后是一个暂时不重要的表wyska

由于表格_tag_wyska可以包含多个条目wyska_id,我如何找到标记是否与其他标记一起使用以及哪个标记主要用于?怎么做最好的方法呢?缓存它或有一个不同的表来保持最新或..?

例如wyska_id = abcd1234具有以下标记:

  • 政治
  • 策略
  • 民主主义

然后wyska_id = 1234abcd具有以下标记

  • 策略
  • 游戏
  • 传奇联盟

然后又有一个wyska_id = 7890defa具有以下标记

  • 策略
  • 游戏

我知道策略使用了3次,游戏使用了2次,其余的则使用了1次,但我需要知道的是strategy标签主要用于game这个词,所以我将gamestrategy关联在一起,例如建议用户子搜索标签,或找到分析数据和动态创建类别的聪明方法,或者只是因为这是一个有趣的问题< / p>

1 个答案:

答案 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最高计数的其他标签。