设计思路:
应用场景:
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:表名不带前缀