字段不相同,客户提出可以自己定义-------
?

解决方案 »

  1.   

    如果按照数据库设计的规范来讲的话,还是应该放在一个表里面,可以避免增、删等异常不过查询效率我就不知道了……等答案~~~
      

  2.   

    如果按照种类建立表,以后的库存,订单怎么联系起来?
    --------------------
    这个可以写视图
      

  3.   

    如果写死了,以后客户增加种类,不是又要修改视图?
    这样不是没完没了。
      

  4.   

    按种类建立表, 似乎不可行吧?种类既然客户是可以调整的, 那调整种类岂不是等于调整表或者且结构? 调整多了的话, 你的程序要处理的工作量岂不是很大了?
      

  5.   

    先清楚的描述一下客户可自定义的范围, 才好确定如何设置表
      

  6.   

    字段不相同这点, 应该考虑一下, 是每个种类都完全不同, 还是仅仅针对某些种类有一些单独的属性如果是前者, 则恐怕只能单独建立表才好处理(考虑到处理的效率), 但这种方式也是最难的, 涉及到我上面提出的问题如果是后者, 可以考虑:
    1. 建立一个基本表, 一个扩展属性表
    2. 基本表保留各种类共用的属性, 以及某些种类会经常使用的属性(一定的冗余)
    3. 扩展属性表为各种类的附加属性, 采用类似下面的保存方式:
       种类id, 属性名, 属性值
       因为这些不是经常使用的, 所以可以在会用到的时候, 通过行列转换转置过来
      

  7.   

    是后者,但是有一些单独的属性也很关键,要经常作为查询的关键字
      

  8.   

    那种属性就做为冗余字段放在基本表中嘛.
    2. 基本表保留各种类共用的属性, 以及某些种类会经常使用的属性(一定的冗余)
      

  9.   

    设计这类表邹老大最有发言权了
    楼主只要花点时间看看E/R模型,就明白这样设计的原因。
    其实就是子类型和超类型的关系
    另外老邹说的对:精确理解用户的需求很重要,避免无谓的牺牲呵呵