我开始使用LINQ2SQL在ASP.NET MVC3中创建一个博客,我想知道为帖子制作标签的最佳方法是什么。
场景1:
我只是在名为blogPosts
的{{1}}表中添加另一行,用逗号分隔每个标记,当我搜索包含某些标记的每个帖子时,我只选择*其中的标签中包含我之后的文本。
场景2:
我添加了另一个名为tags
的表,另一个名为PostTags
。 Tags
将包含PostTags
和postID
。 tagID
将包含Tags
和ID
本身。还在这些表之间建立了DB关系。
那么哪种解决方案最好?
答案 0 :(得分:2)
场景2对我来说看起来更好,因为它清楚地分隔了另一个表中的标记,使数据库更加规范化,并允许更容易通过标记查询。除此之外,您还可以更轻松地对这些标签执行查询,并独立于博客帖子显示它们。
答案 1 :(得分:0)
我认为场景1根本不应该是一个选项,显然不是好的数据库设计,引入冗余数据,当你的表中有很多行时查询效率很低。