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

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

设计思路:


应用场景:

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:表名不带前缀


相关文章
|
SQL 关系型数据库 MySQL
MySQL数据库练习题(单表查询,多表关联查询)(一)
MySQL数据库练习题(单表查询,多表关联查询)
747 1
|
关系型数据库 MySQL 数据库
MySQL数据库练习题(单表查询,多表关联查询)(二)
MySQL数据库练习题(单表查询,多表关联查询)(二)
324 0
|
关系型数据库 MySQL 数据库
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
1215 0
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联更新数据
MySQL数据库-多表关联更新数据
103 1
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联删除数据
MySQL数据库-多表关联删除数据
126 1
|
SQL Java 关系型数据库
模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案
在一些本地化项目开发当中,存在这样一种需求,即开发完成的项目,在第一次部署启动时,需能自行构建系统需要的数据库及其对应的数据库表。
361 1
|
4月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
183 3
|
4月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
4月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
881 152
|
4月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。