关于标签的建议

时间:2010-11-18 17:39:33

标签: php mysql tags

我只需要一些关于使用标签的建议。我现在在网站上工作,用户可以发布关于自己的视频,图像,音频和信息。

我之前从未在普通网站上使用过标签(在wordpress,youtube等上使用过它们),所以我需要一些建议来开始设计我的数据库。

当您有多个类别时,使用标记的常用方法是什么?我是否必须为每个类别添加标签? 例如:

Table:
gallery

gallery_id
image
tags

Table
audio

audio_id
title
link
audio_tags

Etc... 

或者我只制作一个名为“tags”的表及其中的所有标签? 喜欢: 表格标签:

tag_id
tag

提前致谢。

3 个答案:

答案 0 :(得分:1)

由您决定如何塑造应用程序。如果您希望在图库和音频之间共享标记,请使用单个表和两个多对多参考表(或具有多态性的参考表)。

答案 1 :(得分:0)

从技术上讲,最好的格式是你首先描述的格式,但是如果要实现第二种格式,则需要一个额外的字段 - 即类别字段。但是,简单地在每个表格中添加标记字段会更好更容易 - 更好的可读性以及在您的网站中实现它时的用途。

希望有所帮助。

答案 2 :(得分:0)

这取决于您是否希望在多个对象之间共享标签。如果你想将它分开,那么我会为它们制作单独的标签表。如果没有,我将拥有相同的标签表,并为标签将具有的每个关系使用不同的表,所以

分开:

gallery
...
gallery_tags
tag_id
tag

tags_to_gallery
tag_id
gallery_id
..same for audio..

不分开:

  gallery
  ...
  audio
  ...
  tags
    tag_id
    tag

  gallery_to_tag
  gallery_id
  tag_id

  audio_to_tag
  audio_id
  tag_id 

您也可以使用一个ploymorphic表执行此操作。用一张像这样的表:

tag_relations
 tag_id
 object_id
 object_table