有这样一个个人信息:
        
        属性A(1,2,3)----单选
        属性B(A,B,C,D……)----可多选,
        属性C----填写  请问如何设计比较好?尤其是那个多选的属性

解决方案 »

  1.   

    id   属性A   属性B  属性C
    001  1       AB     随便都用字符串好了,属性B反正只有四项,干脆就填入ABCD,用的时候一个一个提取字符,再建一个表,说明ABCD各代表什么。
      

  2.   

    属性B里面用varchar更好
    可选属性有多少个varchar的长度就是多少。
    然后用0/1代表该项是否已经选了
    比如你定义B varchar(4)
    那么如果某条记录的B属性为1001
    那么该记录的属性B就是选择了A和D。当然,在合理和允许的情况下建立一个表来对应该字段的每一位所代表的意思
    但是,如果程序不是很大,或者B属性所对应的可选项是固定的,那么可以不必新建一个表来表明,你编程的时候知道就可以了。
      

  3.   

    那你就麻烦点,再建一个爱好表,放用户ID和爱好。
    然后select * from 爱好表 where ID = 用户ID
      

  4.   

    作一个表头和一个表身吧
    表头(id为主键):  
      id   属性A   属性C
      001   A       null
    表身(id 与 属性B 为主键):
     id   属性B
     001 下棋
     001 跑步
      

  5.   

    如果属性B数量太多,建一个中间表,记录个人信息id和属性B
    属性A和C则不用说了
      

  6.   

    to jiaclassmate:
       
    可以说的详细一点吗?你的意思我看的懂,但我现在还是个初学者,对字符串的操作也不是很熟悉,所以麻烦你说一下具体的一些操作好吗?或者是一些程序代码.
    谢谢!  各位热心的朋友,请你们给我一些详细的代码,好吗?多谢!!!