各有利弊。不过我倒觉得第二种方法没什么必要,要想将不同论坛分开,干脆一个论坛做一个表,没必要按大类来分表吧。也没多少查询会按大类来进行了,一个大类的在一个表中也没什么好处。对这几个论坛的合集进行查询的要求不多,大部分查询统计都是在各子论坛内部进行的,分开设表后每个表中的记录少些,速度会快一些。但是对于查询“我的参与”、“我的问题”、“抢分区”、“最新贴子”等查询可能麻烦些。不过我猜CSDN是用的一个表来处理的,可能并没有分表。都在一个表中程序好做些。

解决方案 »

  1.   

    TO:icevi(按钮工厂) 如果都在一个表里。
    假如搜索(即使搜索一个分支),就要遍历整个表。
    多个表的实现并不难。只是要考虑周长。
      

  2.   

    笨,csdn明显是用一个字段来区分分类的。
    比如“数据库开发”用"7"
    java用“26”。
    至于“软件开发者”,“微软技术专区”这样的大类,是程序实现的。
      

  3.   

    大家误会了。
    我只是想问怎样设计一个论坛的表更好。
    而不是问CSDN的设计。
    呵呵。
    我们再讨论讨论!:)
      

  4.   

    当然一个表了,你可以去下载一下我的论坛数据库看一下就知道了http://person.longcity.net/home3/progame/asp.zip
      

  5.   

    TO: progame(哈,我什么也不懂,怕了吧...) 看过了,建议写入数据库时不要转换成HTML。TO:NIERR(NIER)同意。我也打算这样做。TO:whywhywhy(问个不休) 是程序结合数据库。
    一般地,表不会因为程序改动而改动。
    但程序会因为表的改动而改动。而且改动很大。
      

  6.   

    asp_boy(asp_boy):我不想支持HTML,而对于一个论坛来说贴子被浏览的次数远远超过写入的次数,所以说如果在浏览时使用htmlencode来处理的话浪费的时间太多,所以我的设计思想就是一切为了速度,而速度的瓶颈不在写入而在于页面的浏览和贴子的显示上面,为此可以牺牲其它不在常用功能的一些速度比如说查询,比如说管理.......
      

  7.   

    TO:foolflyfish(progame)在表写入数据时不要与理会。
    在表的数据读出时用Server.HTMLEnCode,或者replace解决。
    当Server.HTMLEnCode之后写入数据库,数据量会很大。但有一点。
    当帖子数量太多的时候,每次读数据都会读整个表(对于一个表实现的话)。
    如果分表。除了查询的时候(查全部)会读多个表之外,一般都是读一个表(或者与之相关联的表)。这样不更快吗?
      

  8.   

    但版块是动态的,你不可能预知有多少分类,有多少版块象这样处理后写入数据库,数据库是会增大,但相对来说是很小的况且,一般来说,是使用aotuid索引的,所以对查询速度影响很小
      

  9.   

    autoid,特此更正,免得贻笑大方之家了:)
      

  10.   

    TO:progame(哈,我什么也不懂,怕了吧...) 
    版块是动态的。
    当表改动,无论用什么方法,程序都是要改动的。可以解释一下AUTOID索引对查询的速度影响吗?
    谢谢!TO:superkt(伟大领袖毛主席) 
    可以解释一下“原子数据”吗?
    谢谢!
    另:
    如果哪位大虾回复,
    麻烦将发言人的昵称COPY下来。
    :)
      

  11.   

    TO:progame(哈,我什么也不懂,怕了吧...)版块是动态的。改表一定要改程序。无论用哪种方法都是要改动的。
    可以详细说说AUTOID吗?TO:superkt(伟大领袖毛主席)程序是根据数据库而改动的。
    是的。
    可以解释一下原子数据吗?请大家回复的时候最好将名字COPY下来。
    指明回复哪一条留言。
    谢谢!