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

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

设计思路:


应用场景:

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


相关文章
|
7月前
|
关系型数据库 MySQL 数据库
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
476 0
|
9月前
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联更新数据
MySQL数据库-多表关联更新数据
70 1
|
9月前
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联删除数据
MySQL数据库-多表关联删除数据
48 1
|
SQL Java 关系型数据库
模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案
在一些本地化项目开发当中,存在这样一种需求,即开发完成的项目,在第一次部署启动时,需能自行构建系统需要的数据库及其对应的数据库表。
108 1
|
关系型数据库 MySQL 数据库
MySQL数据库练习题(单表查询,多表关联查询)(二)
MySQL数据库练习题(单表查询,多表关联查询)(二)
220 0
|
SQL 关系型数据库 MySQL
MySQL数据库练习题(单表查询,多表关联查询)(一)
MySQL数据库练习题(单表查询,多表关联查询)
559 0
|
3天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
47 25
|
12天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
91 42
|
26天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
30天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
261 0

热门文章

最新文章