我程序中要用到下拉列表,比如,这本书你是否看过,列表项为已看和未看,现在我要在数据库里保存这两个值,那我是在数据库里保存"已看"和"未看"好还是将"已看"转换为1,未看转换为"0"保存中好.如果直接保存"已看"和"未看",编程方便,但会不会对数据库检索速度造成大的影响?

解决方案 »

  1.   

    如果只有两种状态用bit就可以了,多种可用int,不要直接保存文字.
      

  2.   

    如果是确定只有2个值的话建议在数据库中保存为BIT型,比如男或女
    但如果可能出现多个值还是使用INT型为好
      

  3.   

    其实保存成什么主要看你在程序中后来要用到什么参数,你要是用到1,0那就保存成1,0
    int型占四个字节
    已看和未看可用char(2),两个字节
    bit就占一个字节,性能来说影响都不大,你要较真就用bit吧
      

  4.   

    无所谓,int吧
    这样转化挺方便呢,三元就行;
    lblStatus.Text = StrStatus.equals(0)?"未看":"已看";
      

  5.   

    数据少的话 性能丢失看不出多少的 建议用bit
      

  6.   

    用bit类型,0为"未看"1"已看".
    其他用int,通过枚举取值。
    在 sql里转化或在代码通过三元操作符转化如
    string s=(bool)dr[""]?"已看":"未看";