2010-11-18 93 views
0

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

我从来没有在标准网站上使用标签(在wordpress,youtube等上与他们合作过),所以我需要一些建议来开始设计我的数据库。

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

Table: 
gallery 

gallery_id 
image 
tags 

Table 
audio 

audio_id 
title 
link 
audio_tags 

Etc... 

还是我只作命名为“标记”一个表和它所有的标签? 像: 表标签:

tag_id 
tag 

在此先感谢。

回答

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 
+0

谢谢你的详细答案。我会为每个类别分别添加标签,否则将会是一团糟。 再次感谢! – moonwalker 2010-11-18 17:49:56

0

从技术上讲,最好的格式是您首先描述的格式,但如果您要实施第二格式,则需要额外的字段 - 即类别字段。但是,简单地在每个表格中添加标签字段会更好也更容易 - 为了便于阅读,并且在您的网站中实施它时也会使用它。

希望有所帮助。

+0

当然有帮助。非常感谢您的帮助。 – moonwalker 2010-11-18 17:50:18

1

这取决于你如何塑造应用程序。如果您希望标签在画廊和音频之间共享,请使用单个表格和两个多对多参考表格(或具有多态性的表格)。

+0

谢谢!我想我会去为每个类别分开标签。 :) – moonwalker 2010-11-18 17:49:02