我现在有三个表,现在假设为A(a1,a2)、B(b1,b2)、C(c1,c2)。关系为如果a2的字段值为1,则查找所有a2=b1的记录,如果a2的字段值为2,则查找所有a2=c1的记录。
我觉得这样的设计不太好,想用其它的关联方式,自己在数据库设计方面较弱,向各位高手学习一下^_^

解决方案 »

  1.   

    既然b1和c1都和a2有关系,还不如把B、C合成一个表
      

  2.   

    nebulaly的答案确实是问题正解,但是还解决不了我的问题,我在说得时候把问题简化了。现在详细说一遍:
    有四个表,现在假设为A(a1,a2)、B(b11,b12,b2)、C(c1,c2)(这三个表是别人设计的,他也需要用,不过如果有好的建议可以改他的表结构),还有另外一个表D(d0,d1,d2)。现在需要实现两个查找方法:
    第一个:根据表D的某个记录d1值查找d1=a1的记录,现在就有a2的值,如果a2为1则查找表C获得c2的值,结束。
    第二个:根据表D的某个记录d1值查找d1=a1的记录,现在就有a2的值,如果a2为2,则根据a1和d2的值查找表B,使(a1=b11,d2=b12),然后取出b2的值,结束。如果使用程序来查找,也很容易实现,不过觉得设计的不好,想优化一下,请数据方面的高手指教!