首页 新闻 会员 周边

想了解下, 大型网站 ,文章 盖楼形式的评论, 数据库是如何设计的?

1
[已解决问题] 解决于 2011-07-17 15:14

我设计数据库是这样,但是有一个严重的问题,当盖楼比较高的时候,这时候用的是递归算法,会很耗资源

不晓得大家是怎么做的?

create table ArticleComment(

@ID int, --标识列

@PID int, --回复ID

@ArticleID int, --文章ID

@Content ntext, --内容

@IP nvarchar(50), --IP

@AddDate DateTime --留言时间

)

dbfox的主页 dbfox | 初学一级 | 园豆:2
提问于:2011-07-14 10:17
< >
分享
最佳答案
0

评论标识、文章标识、用户标识、评论内容、父级标识、层级结构

这样的设计就可以,不用遍历,需要程序查询所需和前端做必要的处理合并就可以达到效果。

Astar | 高人七级 |园豆:40805 | 2011-07-14 17:30
[div] [div] [tit]标题[\tit][num]1楼[\num] [con]留言内容[\con] [\div] [tit]标题[\tit][num]2楼[\num] [con]留言内容[\con] [\div]
dbfox | 园豆:2 (初学一级) | 2011-07-14 17:56
这样?
dbfox | 园豆:2 (初学一级) | 2011-07-14 17:57
其他回答(2)
0

只会递归,关注一下。

but | 园豆:205 (菜鸟二级) | 2011-07-14 10:33
0

不要递归!

最简单的办法就是:复制前面回复,附加上新的,一同放入 Content 中。

Content 要足够大,足以放下所有的楼层。

 

这样做有两个缺点:

1. 占用空间大

2. 前面的回复后修改后,后面的不好更新

 

博客园的回复就是这样做的,你可以试下。

如这个:http://www.cnblogs.com/ldp615/archive/2011/07/13/dot-net-4-parallel-sum-is-not-effective.html#2150950

鹤冲天 | 园豆:2379 (老鸟四级) | 2011-07-14 12:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册