数据库多表关联对多对关系

数据库多表关联对多对关系

本文章解决数据库设计多表关联配置问题,多对多关系!


设计思路:

应用场景:
1,区域表(字段:id(城市id)、name(城市名字))
表名:pms_region
2,中间表(字段:shipping_area_id、region_id)
表名:pms_area_region
3,配送区域表(字段:shipping_area_id(配送区域id)、shipping_area_name(配送区域名字))
表名:pms_shipping_area


关系阐述:

多对多:一个城市属于多个配送区域,一个区域包含多个城市,表1和表3通过中间表关联,拿出二者的主键作为关联字段


问题解决:

1,对于表1来说:设置主键属性及默认值
2,对于表2来说:不需要
3,对于表3来说:设置主键及自动递增属性


代码设计一定注意主键和外键的次序

区域表模型

class Region extends Model
{
    public function shippingArea(){
        return $this->belongsToMany('ShippingArea','area_region','shipping_area_id','region_id');
    }
}

配送区域表模型

class ShippingArea extends Model
{
    public function region(){
        return $this->belongsToMany('Region','area_region','region_id','shipping_area_id');
    }
}

PS:表名不带前缀

猜你喜欢

转载自blog.csdn.net/qq_40657528/article/details/82686283