2010-03-19 50 views
1

我正在为客户创建一个网站,他们希望能够创建文章。我的想法是标记它们,所以我将实施该系统。数据库布局标记系统

什么是最好的设计,无论是从架构和性能比较的视角:

要使表的所有标签,然后有一个一对多的关系表链接标签这样的:

articles table with ID 
tags table with ID 
one to many table with columns Article.ID and Tags.ID 

2.要与文章的一个桌子和一个与标签为这样的文章:

articles table with ID 
tags table with Article.ID and tag text 

在此先感谢!

回答

3

你的第一个选择是最合适的,理论上是正确的。

猜测,您的客户不认为标签像一个很好的功能,因为每个人都有它 - 他们想要通过标签进行搜索。即使他们还不了解他们的需求,并且真的想拥有标签,因为周围的每个人都拥有这些标签 - 他们很快就会意识到他们的需求。

第一个选项将为您提供更好的搜索操作性能。

为文章,标签和它们之间的多对多实现单独的表格。

3

绝对是第一个选项。

除了其他好处之外,您还可以通过检查标记(或类似标记)在添加标记之前是否已存在,允许用户从现有标记中进行选择和/或仅允许超级用户添加新标签。

这样你可以避免mispellings或同一标签的替代拼写(即美国,美国,USofA,美国,中美,美国,美国,AMERIKA,Amrica等标注一些关于美国的时候)