数据库问题比如说有一个记录
姓名  年龄   籍贯   爱好   当爱好有不确定数量时怎么弄?是建立足够多字段,比如  爱好1 爱好2  爱好3  爱好4  还是在爱好字段下将不同爱好用分割符号分开,程序中再处理,比如  唱歌,游泳,羽毛球有别的好办法吗?

解决方案 »

  1.   

    建立足够多字段
    ***********
    这个不可取———————————————分隔符
    *******
    可以考虑
    ———————————————也可以另建表存放 
    姓名code    行号     爱好
    n0001       001     唱歌
    n0001       002     游泳
    n0001       003     羽毛球
    n0002       001     唱歌
    n0002       002     游泳
      

  2.   

    或者再表一个爱好表:
    姓名  爱好
    A    A0
    A    A1
    A    A2
    B    A0
    B    A2
      

  3.   

    可以通过Recordset.Fields.count来查询字段的具体数量.
      

  4.   


    实际上,如何建表是由数据需要如何处理决定的。而且,作为关系型数据库,不建议在一条记录中搞许多冗余字段,只建一个爱好字段。如果仅仅由于显示,在同一条记录中的该字段写入所有爱好即可。如果要利用爱好分类查询,则有多项爱好的人需要多条记录。每一条记录写入一项爱好。如:张三 20 北京 唱歌
    张三 20 北京 游泳
    张三 20 北京 羽毛球当然,也可以将爱好另外建表:表1:
    ID 姓名 年龄 籍贯表2:
    ID 爱好这样,一个人在表1 中占用一条记录。如果有多项爱好,则在表2 中占用多条记录:表1中:
    00001 张三 20 北京表2中
    00001 唱歌
    00001 游泳
    00001 羽毛球分表还是合表,各有利弊,要根据应用的实际情况抉择。爱好1 爱好2 爱好3 爱好4 这种方式是最差的。例如你要筛选出唱歌,则需要:select * from yourtable where 爱好1='唱歌' or 爱好2='唱歌' or 爱好3='唱歌' or 爱好4='唱歌'