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

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

设计思路:


应用场景:

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数据库练习题(单表查询,多表关联查询)
518 0
|
关系型数据库 MySQL 数据库
MySQL数据库练习题(单表查询,多表关联查询)(二)
MySQL数据库练习题(单表查询,多表关联查询)(二)
201 0
|
4月前
|
关系型数据库 MySQL 数据库
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
144 0
|
6月前
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联更新数据
MySQL数据库-多表关联更新数据
57 1
|
6月前
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联删除数据
MySQL数据库-多表关联删除数据
37 1
|
SQL Java 关系型数据库
模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案
在一些本地化项目开发当中,存在这样一种需求,即开发完成的项目,在第一次部署启动时,需能自行构建系统需要的数据库及其对应的数据库表。
84 1
|
3天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
16 4
|
1天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
7 1
|
27天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
58 3
Mysql(4)—数据库索引
|
12天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
52 2