有一个项目表,字段名和字段个数由用户来决定,
比如一个用户表
id,name,age三个字段
其他的字段由用户决定,比如email,photo现在我想到两个方法,一个是在程序中CREATE TABLE 建立表
但是在数据库查询上不好解决一个是另增加两个表,一个存储字段,一个存储值。
在也面显示的时候信息量太大
求各位参观下,发表下意见和解决方法

解决方案 »

  1.   

    没太搞明白
    如果你说的email,photo信息量比较大,可以再单独建一张表,如 id ,email,photo
    否则,可以直接将这两列放到一个表中。
    如id,name,age,userdefine1(放email),userdefine2(放photo),userdefine3(放其他)
      

  2.   

    每个用户建一张表?我觉得很不可取
    可以2张表,一张就存储你说的那3个字段,另一张包含字段id,fieldname,value,通过id关联
    再要么,用户自定义的字段数总有个上限,你就建张表,id,name,age,其他字段名可以用类似a1,a2,a3...
    不过这样也需要再建一张表来配置字段名
      

  3.   

    就是表结构由用户来定,然后再在程序中拼SQL建立表。
      

  4.   

    用户自定义数据,多用 EAV 模式来设计表。google一下这个:
    http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&q=EAV+%E8%A1%A8%E8%AE%BE%E8%AE%A1&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=
      

  5.   

    我有个想法,不知道能否解决你的问题。
    就是创建一个属性表,三个字段:id, property_name, property_value。
    每个ID有几个属性就对应几条记录。