就拿水果作比吧, 水果代表是共性,而包含的桔子,苹果,香蕉又有自己特有的属性。 数据库是这样设计的:
     水果表(shuiguo_tbl)字段大至有水果ID(shuiguo_id), 水果名称(shuiguo_name).... 这样的
     桔子表(juzi_tbl)字段有水果ID(shuiguo_id)用以与水果表关联, 其它一些属性自己独有。
     问题出在这里, 现在想要查询桔子的详细信息,得把水果表(shuiguo_tbl)与桔子表(juzi_tbl)关联来查。 由于水果表(shuiguo_tbl)存放所有水果的的共性信息,表比较大。 而且要新增一条桔子信息的时候,得同时往 水果表(shuiguo_tbl)与桔子表(juzi_tbl)各添加一条信息。 
     请教下,这样设计数据库是否合理??? 是否有更好的方法?

解决方案 »

  1.   

    我的比方有误解,呵呵! 换个大家想想,拿赶集网来说吧,分类信息,有信息ID,信息标题 ,发布时间等共性的东西,但是,租房有自己特有的内容,例如,租金,出租方式, 信息表存放共性, 租房表存放自有的特性, 用户发布的时候填写信息标题,租金,出租方式 这样才算一条完整的信息, 不能只添加共性的,也不可能让用户选特有的。因为两者结合一起才算是完整的内容的。
      

  2.   

    第一种 :每一个分类单独建一张表,存放自己的基本信息(包括其独特信息)。你如果把所有的表建一块去了,数据维护麻烦。到后期一张表要有多大啊,查询也耗时间。为什么一定要建共性表呢?
    第二种 就你说的了,基本信息一张表,其他的只用id关联。但是你注意查询没有,如果每次查表都要关联表,就意味着 你同时锁了两张表,效率不高啊。