正在做个一个论坛,但是遇到了问题?发贴后把帖子保存在一个数据表中 那么回相应的帖要怎么来设置数据库呢! 详细说明加分!!

解决方案 »

  1.   

    保存帖子肯定要有ID来标识,回帖子的时候数据库里只要记录这个回复引用哪个ID不就可以了吗?
      

  2.   

    比如Article表有下面几个字段,Id、RefId、Content、Time,其中Id记录帖子的Id,不管是原创还是回复都记录;RefId是说这篇帖子回复哪篇帖子,记录所回复帖子的Id,若为空,则表明该帖子是原创;Content、Time分别记录帖子内容、时间。当然,还有发贴人,发表的版面等等,就不详细列出来了。
      

  3.   

    就和oracle自带emp表的上司的员工号的那个一个道理,每个帖子的回贴的上司就是原创帖子ID
      

  4.   

    回帖和发贴有什么差别呢,它们都是帖子,所以,一个直接的做法就是在表中设置一个整型子段叫做TrackId,同一话题的帖子都设置同一个值,比如你发的这个贴和我回的这个贴的TrackId相同。由于我们发贴的时间有先后,排序一下就可以知道哪个是问题贴,那些是回帖了。当然,如果你要更细致的结构,也可以在表中设计两个子段:Id和ParentId,前者是每个帖子都唯一的流水号,后者表示父帖子的Id号。比如,你的问题贴Id是10,ParentId是0,因为你这是开天辟地第一贴,所以没有父贴。而我这个贴的Id可能是11,但是ParentId应该设置为10,便可以认为是对你帖子的回帖。这样做的好处是可以实现树形结构,可以对某个回帖再回帖,很漂亮,也更清晰。当然,关于树型结构还有很多效率更高的实现方法,不过原理基本不变。