日期:2014-05-20  浏览次数:20700 次

请教一个表设计问题
比如有一个用户表,只有姓名、性别、年龄这三个字段,等以后想添加的时候添加爱好、电话,以后在想加的时候在添加。总之就是这个表要有扩展性,就算用户要加个有几个脑袋的属性也要能加,这样的怎么处理。期待做过的讲一下,详细些。
java?数据设计

------解决方案--------------------
楼主的意思是用户可以添加属性吧,这些属性可能被其他用户使用,也可能就他自己用。

你的方法是不可行的。由于每个用户的属性都可能不一样,如果每个用户都加几个自己用的字段,那表的字段岂不是用户越多字段越多?而且每个字段只有个别用户才有意义,这样你的表中存在大量毫无意义的冗余。

正确的做法是定义一个自定义属性表,所有自定义的属性都作为一行记录插入该表。
用户表留下3个自定义属性的字段,和3个自定义属性对应值得字段——前者插入自定义属性表里用户选择的属性ID,后者插入对应的值。
------解决方案--------------------
引用:
楼主的意思是用户可以添加属性吧,这些属性可能被其他用户使用,也可能就他自己用。

你的方法是不可行的。由于每个用户的属性都可能不一样,如果每个用户都加几个自己用的字段,那表的字段岂不是用户越多字段越多?而且每个字段只有个别用户才有意义,这样你的表中存在大量毫无意义的冗余。

正确的做法是定义一个自定义属性表,所有自定义的属性都作为一行记录插入该表。
用户表留下3个自定义属性的字段,和3个自定义属性对应值得字段——前者插入自定义属性表里用户选择的属性ID,后者插入对应的值。

我也觉得这想法就是想着为了未知的字段属性去打个伏笔,明显是想多了...增加多几个备用字段?你以为资源不用钱呀