是这样的 
做了一个网站问题留言系统
前台用户提交时会显示:选择问题分类
因为问题分类有4-5个
每个分类需要用到的字段(用户表单填写项)有6个左右
我设计数据库时 我只建了一张表 把所有的字段都放在这表里
这样子我的这张表就有快40个字段了
但不是每个问题分类都需要用到全部的字段这样子下来很多字段是空值的而页面都是动态的
不知道这样子会不会变得很慢

解决方案 »

  1.   

    不知道大家能不能理解比如我一张留言表guestbook的结构是这样
    tid 表示问题分类
    CREATE TABLE IF NOT EXISTS `guestbook` (
      `id` smallint(6) NOT NULL AUTO_INCREMENT,
      `tid` smallint(3) NOT NULL,
      `uid` int(11) NOT NULL,
      `username` varchar(45) NOT NULL,
      `mname` varchar(20) NOT NULL DEFAULT '',
      `k_orderid` varchar(25) NOT NULL DEFAULT '',
      `ip` varchar(15) NOT NULL,
      `time` int(11) NOT NULL,
      `s_orderid` varchar(25) NOT NULL DEFAULT '',
      `cardtype` varchar(45) NOT NULL DEFAULT '',
      `cardnumber` varchar(50) NOT NULL DEFAULT '',
      `cardpwd` varchar(50) NOT NULL DEFAULT '',
      `paytime` varchar(50) NOT NULL DEFAULT '',
      `content` text NOT NULL,
      `tradeype` varchar(20) NOT NULL DEFAULT '',
      `paytype` varchar(50) NOT NULL DEFAULT '',
      `paybank` varchar(50) NOT NULL DEFAULT '',
      `phonenumber` varchar(50) NOT NULL DEFAULT '',
      `accounts` varchar(10) NOT NULL DEFAULT '',
      `rechargtime` varchar(20) NOT NULL DEFAULT '',
      `userfen` varchar(50) NOT NULL DEFAULT '',
      `idcard` varchar(50) NOT NULL DEFAULT '',
      `truename` varchar(15) NOT NULL DEFAULT '',
      `havejoin` varchar(5) NOT NULL DEFAULT '',
      `linkman` varchar(20) NOT NULL DEFAULT '',
      `phone` varchar(20) NOT NULL DEFAULT '',
      `regemail` varchar(50) NOT NULL DEFAULT '',
      `havereply` tinyint(1) NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT '1',
      `title` varchar(255) NOT NULL DEFAULT '',
      `kfid` smallint(6) NOT NULL,
      `replycontent` mediumtext NOT NULL,
      `replytime` int(11) NOT NULL,
      `replyip` varchar(15) NOT NULL,
      `memberlevel` varchar(50) NOT NULL DEFAULT '',
      PRIMARY KEY (`qid`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;