我有一个图片网站,我想支持标签,因为我原来的类别存储桶开始失败了(有些图片是家庭和假期,或者是学校和朋友)。是否有一个约定的标记数据库模式?
我仍然希望支持将照片作为相册的一部分。
现在我有几张桌子:
相片
相片集
有多种有效的模式,随着带标签项的数量增加,每种模式对您需要的常见查询都有各自的性能影响:
就个人而言,我喜欢有一个标签表和一个将标签与项目相关联的链接表,因为它是非规范化的(不重复标签名称),并且可以在必要时在链接表中存储其他信息(例如,标记项目时)。
如果您感到烦躁并且想要简单的选择,您还可以添加一些非规范化的数据,这需要通过在标记表中存储使用计数或存储在项目表本身中使用的标记名称来避免命中,从而以额外的数据维护为代价每个项目的链接表和标签表,这对于显示带有所有标签的多个项目以及简单的标签版本化非常有用…如果您喜欢这种事情;)