比如性别,在mysql中用什么类型的字段,是不是enum枚举?
复选框呢?比如:语文,数学,英语... 用set类型吗?
一般的类似这样的用什么字段合理?
sql呢?
谢谢

解决方案 »

  1.   

    通常范围比较小而且不会变化项的,如性别:男,女,未知;或者表示数据状态:通过/禁止;就用枚举。
    而范围比较大,也会有变化的,如你所说的语文,数学,英语...(这写的不确定性大一些,也就是会有的科目太多,你也不可能在创建字段的时候,一次性把那些科目都写进去,也没那必要)那就直接用varchar
      

  2.   

    想真/假,男/女, 在线/离线  这种只有2个状态的字段,一般我会采用 tinyint 表示, 1表示一种,0表示一种对于科目这样的一般我采用如下方法:
    简单点的,用varchar或者text字段 (视具体内容长度而定),将内容以:“科目1,科目2,科目3,科目4,....”格式存入数据库。读取的时候用 explode()解析。复杂点,首先将科目1,科目2,存到一个表里,用ID表示。 然后再以 “1,2,3,4”方式存数据库,或者新建一个表存放一对多关系信息。