Web 如何使评论报价功能?

Web 如何使评论报价功能?,web,comments,blogs,quotes,Web,Comments,Blogs,Quotes,我们允许像博客一样在我们的网站上发表评论。现在我们想更改它,以便人们可以评论其他评论 我们的桌子看起来像这样: ID | CommentID | Comment | User | Date ------------------------------------------------------------------------- 1001 | 1 | Nice site | Me

我们允许像博客一样在我们的网站上发表评论。现在我们想更改它,以便人们可以评论其他评论

我们的桌子看起来像这样:

ID    |    CommentID    |    Comment     |    User     |     Date
-------------------------------------------------------------------------
1001  |        1        |    Nice site   |     Me      |     20.01.2010
1001  |        2        |    Thx!        |     You     |     21.01.2010
我提出了两个选择:

1创建一个ParentCommentID,并用它决定如何从上到下列出注释

2将您正在评论的评论与您自己的评论以及一些[QUOTE]-标记或其他内容一起存储


有解决这个问题的好方法吗

您真正要问的是您希望数据库表是什么样子的。我想说,这是一个判断的基础上的因素,如你的网站有多大,你认为你应该走多远。使用一个类似的例子,在我们的论坛中,我们将发布线程的用户的用户名存储在线程表中-出于性能原因,这是非标准化的-有时您只是不想进行大量的连接。维基百科关于数据库规范化的文章更详细


我个人的看法是,我会将评论和引语存储在里面,因为这样可以防止人们改变他们已经编写的忍者编辑的内容,从而混淆争论/讨论

您真正要问的是您希望数据库表是什么样子的。我想说,这是一个判断的基础上的因素,如你的网站有多大,你认为你应该走多远。使用一个类似的例子,在我们的论坛中,我们将发布线程的用户的用户名存储在线程表中-出于性能原因,这是非标准化的-有时您只是不想进行大量的连接。维基百科关于数据库规范化的文章更详细


我个人的看法是,我会将评论和引语存储在里面,因为这样可以防止人们改变他们已经编写的忍者编辑的内容,从而混淆争论/讨论

听起来我们需要先做更多的需求收集

您使用的是什么类型的数据库MySQL、MSSQL等?什么版本?例如,SQLServer2008就有一个用于这类事情的内置hierarchyId数据类型。 是否要支持多个级别的嵌套注释,即完整的分层回复树? 您有什么样的性能要求?这必须具有多大的可扩展性和健壮性? 您是否需要报告回复,或者回复只是一个内容?例如,vBulletin有简单的引用回复,这些回复只是消息的一部分,而一些博客评论系统会在收到回复时提醒您,您可以单独查看对评论的回复。
听起来我们需要先做更多的需求收集

您使用的是什么类型的数据库MySQL、MSSQL等?什么版本?例如,SQLServer2008就有一个用于这类事情的内置hierarchyId数据类型。 是否要支持多个级别的嵌套注释,即完整的分层回复树? 您有什么样的性能要求?这必须具有多大的可扩展性和健壮性? 您是否需要报告回复,或者回复只是一个内容?例如,vBulletin有简单的引用回复,这些回复只是消息的一部分,而一些博客评论系统会在收到回复时提醒您,您可以单独查看对评论的回复。 我将使用ParentCommentID作为外键返回到该表的CommentID。这将加强引用完整性,并避免一些重复

如果有十个人引用了一条评论,则使用选项2将其复制十次。在选项一中,您只有十个FK

单个注释中允许的字符越多,使用选项2,每个报价的重复次数就越多

选项1还允许您进行更多的报告。您可以更轻松地查询以找出引用次数最多的注释。

我将使用ParentCommentID作为该表的CommentID的外键。这将加强引用完整性,并避免一些重复

如果有十个人引用了一条评论,则使用选项2将其复制十次。在选项一中,您只有十个FK

单个注释中允许的字符越多,使用选项2,每个报价的重复次数就越多


选项1还允许您进行更多的报告。您可以更轻松地查询以找出引用次数最多的注释。

parentid是一个不错的选择。您还可以将时间与日期一起存储,以查找已发布回复的层次结构,甚至可以使用CommentID字段来查找它。

parentid是一个不错的选择。您还可以将时间和日期一起存储,以找出已发布回复的层次结构,或者甚至可以使用CommentID字段。

如果评论ID未显示在页面上,您可以始终应用一个编号方案,如IP地址或应用程序版本。也就是说,CommentID 2.1是第二条评论的第一条评论,2.2
是对第二条评论的第二条评论。因为不需要太多的字符串标记就可以确认CommentID3.1.7是一篇文章的第一条评论和第二条评论中的第七条评论。一旦您将其标记为整数,排序就变得轻而易举了。

如果注释ID没有显示在页面上,您可以始终应用一个编号方案,如IP地址或应用程序版本。即,CommentID 2.1是第二条评论的第一条评论,2.2是第二条评论的第二条评论。因为不需要太多的字符串标记就可以确认CommentID3.1.7是一篇文章的第一条评论和第二条评论中的第七条评论。一旦将排序标记为整数,排序就变得轻而易举了。

这是我在访问的论坛上经常看到的事情。为了赢得争论,人们会做任何事……我已经考虑过你所谓的忍者编辑。这将用于公司/消费者网站。所以我不认为这是一个问题,但要记住。好提示!这是我在访问的论坛上经常看到的东西。为了赢得争论,人们会做任何事……我已经考虑过你所谓的忍者编辑。这将用于公司/消费者网站。所以我不认为这是一个问题,但要记住。好提示!