内容标记

时间:2011-12-19 09:12:34

标签: php mysql database


我正在尝试创建一个小型网络应用来分类某些类型的YouTube 视频,当用户提交视频时,他们会选择此视频所属的类别< / strong>并且他们将使用现成标签标记它,例如: 视频一 - 类别:广告 - 标签:可爱,有趣,有动物。
我正在尝试为我绘制数据库(我正在使用MySQL),到目前为止我有两个想法。

想法1:
包含IDCategory列的表格视频,另一个包含IDTag列的标记,Videos.IDTags.ID列链接在一​​起。因此,当用户尝试按标记过滤搜索结果时,查询将具有更多条件(AND Tag = 'something' AND Tag = 'other thing')。
创意2:
一个表包含CategoryTags列的视频,标记存储为以逗号分隔的字符串,当用户尝试按标记过滤搜索结果时,查询会有更多条件(AND Tags LIKE '%something%' AND Tags LIKE '% other thing%) 。

 所以问题是:有没有更好的方法?我已经认为第一个是浪费(每个视频可能有多达40个现成的标签),第二个是笨拙的。如果没有,你认为哪一个更好?

2 个答案:

答案 0 :(得分:3)

创建将video idtag id链接在一起的附加表是正确的解决方案。通过创建其他INNER JOIN条件来完成过滤。以逗号分隔的列表不会这样做 - 它极大地限制了您的选择和查询可能性。

答案 1 :(得分:0)

创意1看起来不错。创建一个单独的表来存储标签有助于选择。