我们数据库设计人员设计数据库的时候.
比如数据库中有个 "班次"字段 有"早班, 中班, 晚班"三个选择 , 
有两种方案:
1. 把"班次"定成 int 型, 
我们在页面上显示的时候, 遇到 1, 就转换成 "早班" ,遇到 2, 就换成"中班" , 遇到 3 , 就转换成"晚班".2 直接把"班次"定成 vchar 型. 允许插入"早班, 在web上显示, 就直接从数据库读出来,不加处理,直接显示.你们多用哪种?

解决方案 »

  1.   

    declare @t1 table(ClassID int,ClassDesc varchar(4))
    insert into @t1 select 1,'早班'
    insert into @t1 select 2,'中班'
    insert into @t1 select 3,'晚班'declare @t2 table(Name varchar(8),ClassID int)
    insert into @t2 select 'AAAA',1
    insert into @t2 select 'BBBB',3
    insert into @t2 select 'CCCC',2select b.Name,a.ClassDesc from @t1 a,@t2 b where a.ClassID=b.ClassID/*
    Name     ClassDesc 
    -------- --------- 
    AAAA     早班
    CCCC     中班
    BBBB     晚班
    */
      

  2.   

    各有好处一般需要考虑速度、方便性、占用空间以班次来说,如果数据量估计不是很大,虽然int比较和字符串比较的速度差距很大,也会先考虑方便性而采取字符型(这里的字符基本定长,建议用char或者Nchar)如果数据量估计很大,那速度应该是第一位的,用tinyint、smallint或者int现在空间便宜,占用空间一般不用考虑