3表之间的关系 [英] Relationship between 3 tables

查看:121
本文介绍了3表之间的关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个具有3个表的mysql数据库:

   - 广告系列
id
code
名称

- 列
id
名称

- 值
id
idColumn

广告系列和列之间的关系很多到很多:

   -  ColumnsCampaign 
id
idColumn
idCampaign

和列之间的关系是一对多的。



我有这个查询返回每个广告系列的所有值:

  return Campaigns :: addSelect('id','code','name')
- > whereHas ('typeCampaign',function($ q)use($ idTypeCampaign,$ idMenu)
{
$ q-> where('typeCampaign.id',$ idTypeCampaign)
- >其中,('menus',function($ q)use($ idMenu){
$ q-> where('menus.id',$ idMenu);
});
} )//这部分定义了我想要的活动某个菜单
- >与('columns.values')//这里我包括活动列及其值
- > get();

我的问题是,如果我对同一列有不同的值,我不知道哪个广告系列相关联。我如何解决这个问题?在广告系列和价值观之间建立关系表是否正确?

解决方案

这不是(还有)答案吗?对于其他人来说,如果结构更像这样,可能会更明显一些:

 广告系列
campaign_id *
代码
名称


column_id *
名称

campaigns_columns
Campaign_id *
Column_id *

* =(组件)PRIMARY KEY


I have a mysql DB with 3 tables:

- Campaigns
 id
 code
 name

- Columns
 id
 name

- Values
 id
 idColumn
 value

The relationship beetween Campaigns and Columns is many to many:

- ColumnsCampaign
 id
 idColumn
 idCampaign

and the relationship beetween Columns and Values is one to many.

I have this query that returns all values for each campaign:

return Campaigns::addSelect('id','code','name')
->whereHas('typeCampaign', function ($q) use ($idTypeCampaign,$idMenu)
{
    $q->where('typeCampaign.id',$idTypeCampaign)
        ->whereHas('menus', function ($q) use ($idMenu){
             $q->where('menus.id',$idMenu);
        });
})//this part define which campaign i want with a certain menu
->with('columns.values')//with this i include the campaign columns and its values
->get();

My problem is that if i have different values for the same column i dont know to which campaign is associated. How can i solve this issue? Is it correct to create a relationship table between campaigns and values?

解决方案

This isn't (yet?) an answer but it might be a little more obvious to the rest of us if the structure was more like this:

Campaigns
campaign_id *
code
name

Columns
column_id *
name

campaigns_columns
Campaign_id *
Column_id *

* = (component of) PRIMARY KEY

这篇关于3表之间的关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆