一个常见问题,寻求最优方法有一个user表,是记录用户属性的。
比如:
id name 站点管理员,可以自己添加设置用户的属性 及 属性类型。现在的设计是有两个表:一个 user表:
id name
存储了最基本的属性;一个是user_fields表
id fields_name fields_type
存储了站点管理员添加的其他新属性如果说在user_fields表里添加了一个新的属性,例如sex,
id fields_name fields_type
1     sex        int那么为了存储用户的sex的值,就会在user表里多添加一个字段
user表
id name sex现在的问题是,如果管理员添加的属性越来越多 越来越多,那么这个user表横着方向就越来越长,不好.......
有什么号的数据表设计方式啊??

解决方案 »

  1.   

    常用的属性,建议还是直接放在 user 表中,这样方便查询。
    对于某些允许用户自行添加的属性,在一些软件中是这样实现的。
    另建一个属性表 user_fld_value ( id,fldName,fldValueNumeric,fldValueChar)
      

  2.   

    一般业务应用中不这样设计的,但你这种情况在一些企业应用软件中有出现,主要是为了考虑“易扩展”,
    其实易扩展的角度来说,一种情况可以采用保留字段法;一种建立一个扩展字段的列表表,这里面有ID值标识,以便区分是哪个表的哪个字段,然后再用一表记录对应前面的ID值及其对应value。