【发布时间】:2011-08-06 09:30:54
【问题描述】:
这是我目前的评论系统设计:
我正在为一个有很多领域、博客、教程、手册等的网站开发它。应该为每个(tblBlogComments、tblTutorialComments)等开发一个单独的评论表,我是尝试采用一种适合所有方法的结构。
这样,我可以将评论系统变成一个 web 控件,然后将它放到我想要 cmets 的任何页面上。这意味着我只有一套规则,一套代码文件要维护。
唯一的问题是,想出一种“好”的方法来确定(博客/教程/手册)属于哪个部分。
例如,一种解决方案是:
tblComment
-------------
Section (int)
SectionIdentifier (int)
其中 'Section' 映射到网站每个部分的唯一值,例如:
Blog = 1
Articles = 2
Tutorials = 3
...
SectionIdentifier 是该页面的某种唯一 ID,例如:
ViewBlog.aspx?ID=5
这将是第 1 部分,标识符 5。所以现在,带有 Section = 1、SectionIdentifier = 5 的评论意味着它是对博客条目号 5 的评论。
这很好用,但代价是可维护性和稳固的结构,因为SectionIdentifier 是匿名的,无法建立任何关系。
这个设计可以吗,还是有更好的解决方案(IE某种父表来评论?)
【问题讨论】:
-
IdentifierID 令人难以置信!
-
@Martin,你是什么意思?我不太确定如何解决这个问题 :-( 部分标识符实际上可能更具语义,我会更新问题
-
开个玩笑... IdentifierIdentifier - 简直令人难以置信。 :-)
-
@Martin 哦,好吧 :) 是的,这也是命名可能有点模棱两可的情况之一,这就是为什么我宁愿使用替代解决方案
标签: asp.net database-design foreign-keys relational-database normalization