我说的多对一是指,多张主表对应一张明细表。并不是多个记录对应一个记录。
如明细表d(a,b,c,d,e,f)
主表m1(a,am),m2(b,bm),m3(c,cm)
m1与d组成主表明细表,m2与d组成主表明细表,m3与d组成主表明细表。
如果这样设计数据库。不知好不好,请高手分析利弊。
如果这样设计:
明细表m1(a...),m2(b...),m3(c...)
主表不变,又怎么样

解决方案 »

  1.   

    主,明细表之间有关系与主表和明细表的数量没有关系,
    有关系的只是主表的主键是明细表的外键,是记录的关系。
    如你所说:
    如明细表d(a,b,c,d,e,f)
    主表m1(a,am),m2(b,bm),m3(c,cm)
    看起来是没有问题的,但也要具体分析。如果此时是 (a,b,c,d,e,f) 具有UNIQUE 属性,
    则完全正确。
    但如出现(a ...(a的关联信息),B ...(B的关联信息),...)这样的情况,
    且(a,b,c,d,e,f)不具备UNIQUE 属性。
    一定是有问题的,太过冗余嘛。真是这样的话,
    就按你所说的方案设计
    明细表d1(a...),d2(b...),d3(c...)
    分开后,不可忽略d1,d2,d3之间的关系。总而言之,表的设计不是一蹴而就的,必多方考虑,而且要守范式,
    如果借助工具的话,效果会明显的,如使用 ROSE,PowerDesign等。
      

  2.   

    如明细表d(a,b,c,d,e,f)
    主表m1(a,am),m2(b,bm),m3(c,cm)你所说的这种表是不是如下类似
    m1:零配件号码及其描述
    m2:仓库号码及其地址
    m3:......
    d: 库存表,包括仓库号码,零配件号码....等等