【发布时间】:2012-10-11 20:29:52
【问题描述】:
我正在创建一个使用 PHP 和 MySQL 发布相关网站的网站。我正在为这个网站使用一个带有逗号分隔标签的标签系统,例如我的标签看起来像:php、mysql、code、programming。
我使用这个逗号分隔的标签系统的原因是因为我希望用户能够为他的帖子插入他想要的任何类型的标签。
我已经从这个网站和互联网上进行了搜索,但答案与我的问题并不真正相关。许多标记系统使用三个表,如 item、tag_map 和 tag,我认为它不适用于逗号分隔的标记系统。
到目前为止,我已经创建了一个包含名称和标签字段的表。我发现的最佳解决方案是使用 Tf–idf, term frequency–inverse document frequency 来衡量帖子相对于其内容的权重。
还有其他好的解决方案吗?如果没有,如果有人可以使用 php 代码解释这个 tf-idf 示例,我真的很感激。
【问题讨论】:
-
所以您希望每条记录中的单个字段看起来像
tag1,tag2,tag3,tag4,...?那是糟糕的设计。它否定了使用关系数据库来存储您的信息的意义,并使对标签频率和/或操纵标签进行任何分析变得非常痛苦。 -
是的,我试过把它分成post表和tag表,但它是一对一的关系,我认为是一样的。
-
您找不到有关如何执行此操作的资源是有原因的 - 因为这是错误的方法。
-
我认为它不适用于逗号分隔的标记系统 - 不适用于演示或持久性?
-
还有其他好的方法来实现这个吗?因为我希望用户可以为他的帖子添加自己的标签。如果我使用 3 表设计,它将使我的数据库变得非常大。
标签: php database web tags tagging