如下有三个表,分别是专辑表、产品表、图片表。
要求:专辑能同时存入产品和图片。
请问要怎么表达这三者的关系?我分析了一下,专辑和产品是多对多的关系,专辑和图片也是多对多的关系。
难道要设计两个中间表吗?

解决方案 »

  1.   

    可以在 专辑表、产品表 之间再建个表,里面存 产品id   专辑id(用逗号隔开) 图片和专辑同理
      

  2.   

    如上面所说,产品id   专辑id,最好每个表里都有,这样就可以相互关联了。
      

  3.   

    如果保存的是用逗号连接的产品id和图片id,那么就没有必要另外建表了
    建立过渡表的目的是为了高速访问,你若把目标id连接成串,就无法使用索引了
      

  4.   

    专题id  产品id  图片id一般情况下,产品和图片一一对应
    所以表的稀疏度不会太大
      

  5.   

    那就分开来
    专题id  产品id
    专题id  图片id既然是两个实体,那么你为什么要硬扯在一起呢?难道要设计两个中间表吗?
      

  6.   

    select * from A left join A_B on A.id=A_B.aid left join A_C on A.id=A_C.aid
      

  7.   


    现在你说的只是专辑表和两个中间表A_B,A_C的联合查询。但是中间表只是存两个表的主键,如果要查具体的信息,比如图形表和产品表的信息。是不是要继续left join 图形表 ,left join 产品表。
      

  8.   

    那是当然的!
    但只需要 INNER JOIN 就可以了