我正在为客户创建一个网站,他们希望能够创建文章。我的想法是标记它们,以便我实现系统。
从建筑和性能角度来看,最佳设计是什么:
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
提前致谢!
答案 0 :(得分:3)
你的第一个选择是最合适的,理论上是正确的。
猜猜,你的客户不认为标签就像一个很好的功能,因为每个人都拥有它 - 他们希望通过标签进行搜索。即使他们还不了解他们的需求并且真的想拥有标签,因为周围的每个人都有 - 他们很快就会意识到他们的需求。第一个选项将为您提供更好的搜索操作性能。
为文章,标签和它们之间的多对多实现单独的表。
答案 1 :(得分:3)
绝对是第一个选择。
除了其他好处之外,您可以通过在添加标签之前检查标签(或类似标签)是否已经存在来强制执行标签,允许用户从现有标签中进行选择,和/或仅允许超级用户使用标签。添加新标签。
通过这种方式,您可以避免相同标签的错误拼写或替代拼写(例如美国,美国,美国,美国,美国,美国,美国,美国,美国,等等,并标明有关美国的内容)