最好是加一个,否则如果需要使用id的话,你还需要再增加一次磁盘IO,而加上这个id空间也多使用不了多少,当然你如果磁盘空间非常紧张也可以不要,但是这需要增加取数据的时间,事实上,完全没有冗余的数据库是以牺牲磁盘存取时间为代价的。

解决方案 »

  1.   

    有没有例外的情况,比如有个人员,我在别的表中的字段是这个人的id,可是我显示时一定要显示名字,别人才能认识,这样我就得拿id去查name,多了一步,如果直接用名字,不久更方便了吗?当然,这个例子不太恰当,因为人名可能重复,但是比如一个总厂的分厂名,绝对不会重复,是不是不用id更方便一些?
      

  2.   

    so , only ues a table is enough!
      

  3.   

    建一张表,不利于添加和约束,比如本校现有10个班,学生的信息中的班级名称必须在这10个班之内,如果建立值约束,如果学校添加一个班级后,修改比较麻烦。还是要建两个表,中间建立外键约束。
    问题是学生信息里放班级的id还是直接放班级名字,就是外健约束是id还是name?
      

  4.   

    放ID。因为班级ID是班级表的主键,若严格按照1:n关系设计数据库的准则,n表中放1表中的主键(可以考虑做外键)