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

解决方案 »

  1.   

    对桔子表更新为什么要对水果表操作啊,就直接对桔子表操作不就行了吗?
    比如:水果表里,水果ID:001,水果名称:桔子
    桔子表里, 水果ID:001,桔子信息:a001
              水果ID:001,桔子信息:a002
    这样不行么,具体不太理解你的想法,可能我想简单了
      

  2.   

    设计一张可以包含所有水果属性的一张水果表的数据字典就行了。
    对于某些水果的个性属性,其它水果该属性字段为null就可以了。
      

  3.   

    子类几百多,放一张表放不下?
    开什么玩笑,你觉得oracle一张表放不下几百行?那还叫数据库!
    再说了,如果按照你的设计,水果的子类N多,你岂不是得设计几百张"结构类似"的表