建立产品编码表
产品编码,产品名称
产品属性编码表
属性编码,属性名称
产品属性表
产品编码,属性编码,属性愉快的登山者       ⊙
◢◣◢◣◢◣

解决方案 »

  1.   

    楼上的产品编码表可以考虑用产品编码树产品属性表中只保存本产品特有属性,另外在产品属性表中增加一字段表示该属性是否可以继承如果要知道某个产品属性,则需要:
    1)查询特有属性;
    2)查询父产品
    3)查询父产品可以继承属性
    4)2、3进行递归查出所有祖先的可以继承属性总之很烦琐,可以考虑用存储过程实现。如果真的有必要,还是采用面向对象数据库吧。
      

  2.   

    建立树状关系表及节点属性表,每个产品都会在这个树上有一节点,这样就很容易得到这个节点的所有父节点的所有属性,
      

  3.   

    更复杂的是:
    应该有产品表,用来保存各种产品的属性吧1)产品表动态生成,表名同产品编号;
    2)生成表的时候取所有属性,因此属性表中应该包含字段信息,如长度、数据类型、缺省值、取值范围等;
    3)更新某产品编号的属性,(删除、添加等)需要用触发器更新子类、孙类的产品表,可能会存在不能更新的情况(,简称触发以下同);
    4)删除产品编号需要触发
    5)更新属性表需要触发
    很复杂,小心啦
      

  4.   

    这样可以解决问题:所谓大类和小类的字段可以任意添加。也可以由人为来控制。就是你在表中多预留一些字段。10个少了。那就100个,1000个。。甚至可以更多。。
    具体设计思想:
    产品编号(主键) 产品名称 父接点 属性1 属性2 属性3 属性4 。。更多
    1 灯 0 价格 功耗 产地 数量
    2 节能灯 1 价格 功耗 产地 技术 类型
    3 台灯 1 。
    4 。。 0 。 。
    5 。 4 。 。
    6 4 。。 。。
    7 4 。。 。
    8 0 。。
    9 。 8 。
    10 。。 8 。。 。 。 ID(主键) 产品编号 字段名 属性值
    1 1 属性1 价格
    2 1 属性2 功耗
    3 1 属性3 产地
    4 1 属性4 数量
    5 1 属性5 。。
    6 1 属性6 。。
    7 1 属性7 。。
    8 1 属性8 。。
    9 1 属性9 。。
    10 1 属性10 。。
    …。
    。。


    下面还有很多
    ..
    ..
      

  5.   

    加动态属性字段在同一张表内。再加一张表维护不同类别的属性。
    实现所谓子类与父类不同之处,大可以在程序控制是否允许填写就OK了,而没有必要把数据库折腾得这么复杂,