我正在尝试创建一个小型网络应用来分类某些类型的YouTube 视频,当用户提交视频时,他们会选择此视频所属的类别< / strong>并且他们将使用现成标签标记它,例如:
视频一 - 类别:广告 - 标签:可爱,有趣,有动物。
我正在尝试为我绘制数据库(我正在使用MySQL),到目前为止我有两个想法。
想法1:
包含ID
和Category
列的表格视频,另一个包含ID
和Tag
列的标记,Videos.ID
和Tags.ID
列链接在一起。因此,当用户尝试按标记过滤搜索结果时,查询将具有更多条件(AND Tag = 'something' AND Tag = 'other thing'
)。
创意2:
一个表包含Category
和Tags
列的视频,标记存储为以逗号分隔的字符串,当用户尝试按标记过滤搜索结果时,查询会有更多条件(AND Tags LIKE '%something%' AND Tags LIKE '% other thing%
) 。
所以问题是:有没有更好的方法?我已经认为第一个是浪费(每个视频可能有多达40个现成的标签),第二个是笨拙的。如果没有,你认为哪一个更好?
答案 0 :(得分:3)
创建将video id
和tag id
链接在一起的附加表是正确的解决方案。通过创建其他INNER JOIN
条件来完成过滤。以逗号分隔的列表不会这样做 - 它极大地限制了您的选择和查询可能性。
答案 1 :(得分:0)
创意1看起来不错。创建一个单独的表来存储标签有助于选择。