首页
学习
活动
专区
圈层
工具
发布

Laravel学习记录--Model

Model关联 一对一 一对多 渴求式加载 多对多 远层一对多 多态关联 多对多多态关联 一对一 1:1最基本的关联关系 ,如一个User模型关联一个Phone模型,为了定义此关联,我们需在User模型定义一个...(1)->phone; //在phones表中查找外键uid(uid=1)与musers表的主键uid相匹配的记录 dd($res); } 一对一反向关联 在上面我们从muser模型访问到...官方文档没看太懂,看了这个大佬的文章,豁然开朗 原文链接 下面结合大佬的例子,阐述一下我的想法 远程一对多,顾名思义“远程”的一对多,既然称之为远程一对多,那这个一对多关系肯定不是直接关联,而是“远程...(articles),用户与文章是一对多的关系,国家与用户也是一对多的关系,那么怎么实现根据不同的国家显示对应的文章?...,如果不指定,在本例中按照默认拼接规则为 当前模型类名_id;这里就是(Countrie_id)secondKey:中间模型类与关联模型类的关联外键,如果不指定,在本例中按照默认拼接规则为关联模型类_id

16K20

MySQL【知识改变命运】复习前1~11

,不指定列名,值的顺序与个数和表中定义列的顺序一一对应 2.查询操作 >a.全列查询 select * from 表名;//不加限制的查询会把表中所有的数据都查出来....: PRIMARY KEY 在校验的方式上相当于NOT NULL 与UNIQUE 的组合,建议为每张表中定义自增主键 4.外键约束:FOREIGN KEY 一个表中的字段与另一个表中的主键或者唯一键建立关联关系...对当前列的值合法性的进行检查,在8.0中才生效,5.7版本允许定义但是不生效 5:表的设计 三大范式 第一范式:要求表中的每一列都是不可再分,用SQL语言中提供的简单数据类型可以描述字段即可,不满足第一范式的数据库就不能成为关系型数据库...第三范式:在第二范式的基础上,消息传递依赖,为不同的实体单独建表 关系模型 一对一关系:为每个实体单独建表,其中一张表中加一个字段完成对另一张表的引用(建立关系) 一对多关系:为每个实体单独建表,在一这一方设置一个主键....在多这一方加一个字段,两表建立引用关系 多对多关系:为每个实体单独建表,另外新加一张关系表 6:聚合函数 1.COUNT(列*)统计结果条数 2.SUM(列)求和 3.AVG(列)求平均数 4.MAX

28210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django模型关系:从一对多到多对多全解析

    一、一对多关系: ForeignKey一对多是最常见的模型关系,例如 "作者 - 书籍" 场景:假设一个作者可以写多本书,但每本书只能属于一个作者。...: ManyToManyField多对多关系适用于 "作者 - 书籍" 的另一种场景:假设一个作者可以写多本书,一本书也可以有多个作者。...=True, read_time=timezone.now())四、关于是否使用外键约束在实际项目中,是否使用数据库外键约束需要权衡利弊使用外键的优势数据完整性:数据库级别的约束保证关联数据一致性开发效率...完整支持(逻辑外键保留) 性能影响 外键约束带来额外开销 无约束开销 适用场景 强数据一致性需求 高频写入/跨库/历史数据迁移五、多对多关系实战实战场景...:在一个后台管理系统中,用户与角色往往是多对多关系。

    29500

    基于 Nest.js+TypeORM 实战,项目已开源,推荐!

    接下来探索一下如何用TypeORM创建一对一、一对多和多对多的关系。 一对一 一对一指的是表中一条数据仅关联另外一个表中的另一条数据。例如用户表和用户档案表, 一个用户只有一份档案。...@JoinColumn 必须在且只在关系的一侧的外键上, 你设置@JoinColumn的哪一方,哪一方的表将包含一个relation id和目标实体表的外键。记住,不能同时在二者entity中。...一对多 在一对多关系中,表A中的一条记录,可以关联表B中的一条或多条记录。比如:每一个文章分类都可以对应多篇文章,反过来一篇文章只能属于一个分类,这种文章表和分类表的关系就是一对多的关系。...@ManyToMany: 用于描述多对多关系 @JoinColumn:定义关系哪一侧带外键的连接列,可以自定义连接列名称和引用的列名称 @JoinTable:用于描述“多对多”关系, 并描述中间表表的连接列...,其中User和Category与 Post是一对多关系,而Tag与Post是多对多。

    12.2K41

    MySQL复习笔记(2)-约束

    值 外键约束 一个表中的字段引用另一个表的主键 主表: 主键所在的表,约束别人的表,将数据给别人用 副表/从表: 外键所在的表,被约束的表,使用别人的数据 创建外键 CREATE TABLE 表名...表名 DROP FOREIGN KEY(外键约束名); 外键的级联 在修改和删除主表的主键时,同时更新或删除副表的外键值,称为级联操作 ON UPDATE CASCADE – 级联更新,主表更新时,从表跟着更新...CASCADE ON DELETE CASCADE ); 表关系概念 一对一 在实际的开发中应用不多.因为一对一可以创建成一张表。...两种建表原则: 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一UNIQUE 外键是主键:主表的主键和从表的主键,形成主外键关系 一对多 例如:班级和学生,部门和员工,客户和订单,...分类和商品 一对多建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键 多对多 例如:老师和学生,学生和课程 多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键

    1.1K20

    Python 高级笔记第二部分:数据库的概述和MySQL数据表操作

    外键约束和表关联关系 ⭐️外键约束:foreign key 建立表与表之间的某种约束的关系,由于这种关系的存在,能够让表与表之间的数据,更加的完整,关连性更强,为了具体说明创建如下部门表和人员表。...注:约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、关联性 外键约束分主表和从表:若同一个数据库中,B表的外键与A表的主键相对应,则A表为主表,B表为从表。...一对多和多对多是常见的表数据关系: 一对多关系 一张表中有一条记录可以对应另外一张表中的多条记录;但是反过来,另外一张表的一条记录 只能对应第一张表的一条记录,这种关系就是一对多或多对一 举例:...多对多关系 一对表中(A)的一条记录能够对应另外一张表(B)中的多条记录;同时B表中的一条记录 也能对应A表中的多条记录 举例:一个运动员可以报多个项目,每个项目也会有多个运动员参加,这时为了表达多对多关系需要单独创建关系表...专业 … 感受属性 :悲伤、喜悦、刺激、愤怒 … 关系 实体之间的联系 一对多关联(1:n) 多对多关联(m:n) ✨E-R图的绘制 矩形框代表实体,菱形框代表关系,椭圆形代表属性 ⭐️表关联查询

    2.1K20

    【MySQL数据库】多表关系与多表联合查询

    目录 MySQL多表关系 一对一 一对多 多对多 MySQL外键约束 创建外键 数据插入 删除 多表联合查询 交叉连接查询 内连接查询 外连接查询 子查询关键字 自关联 MySQL多表关系 MySQL...表与表之间的三种关系 一对多关系:最常见的关系:学生对班级 , 员工对部门 多对多关系:学生与课程 , 用户与角色 一对一关系:使用较少,因为一对一关系可以合成为一张表 一对一  一个学生对应一个身份证号码...一对多 一个部门可以有多名员工,但一个员工只能归于一个部门 在多的一方建立外外键指向一的一方 多对多 下表为多对多关系,由下表可知多对多关系的中间表至少需要2个外键...MySQL外键约束 创建外键  格式: constraint 外键名> foreign key 字段名[,字段名2,…] references 主键列1 [,主键列2,…] 方式一 创建表时添加外键...“false”,外层查询不执行 EXISTS后面的子查询不返回任何实际数据,只返回真或假,当返回真时 where条件成立 注意,EXISTS关键字,比IN关键字的运算效率高,因此,在实际开发中,特别是大数据量时

    3.3K20

    Java面试手册:数据库 ②

    java 里面双引号表示String 类型,单引号表示char类型,而数据库中是char(长度不尅变)和varchar(长度可变) 关于数据库 一个项是数据库先行(表结构的设计、关系到项目的成败),每一个项目都有自己的数据库...可以用主键子句或者主键短语来定义 建表时定义主键 添加主键 参照完整性:又称引用完整性,指标简的规则,卓用于有关联的两张或两张以上的表,通过使用主键和外键(或为一键)之间的关系,使表中键值在相关表中保持一致...java和数据库的对应关系)给表中的一个字段添加一个外键属性(从表),让它由相应的主键约束(主表),与其他表的主键构成关联关系,主键约束外键。..., 一对多关系:班级和学生,一个班级可以对应多个学生,数据库通过设置主外键关联关系,来维护两张表的一对多的关系,主键和外键都是天加到字段上的属性。...多对多关系:学生和选课,商品和顾客,通过建立第三张表专门存放外加字段 ,从而实现多对多的关系,实际上是通过设置两个一对多关系来间接表示多对多关系。

    1.6K20

    EF基础知识小记五(一对多、多对多处理)

    本文主要讲EF一对多关系和多对多关系的建立 一、模型设计器 1、一对多关系 右键设计器新增关联 导航属性和外键属性可修改 2、多对多关系 右键设计器新增关联 模型设计完毕之后,根据右键设计器根据模型生成数据库...,就能生成对应的表之间的一对多和多对多关联 二、代码层面 建表语句如下: --建表脚本 create table Student ( Id int not null, Name varchar...(通过外键) --但外键约束(一对多) alter table InfoCard add constraint [FK_InfoCard_Student] foreign key (StudentId)...references Student (Id) on delete no action on update no action 2、多对多(中间表双主键双外键) --双主键约束(多对多) alter...no action 生成对应的一对多和多对多关联的表之后,根据数据库生成模型就能生成对应的模型 三、多对多无载荷 根据上面的建表语言,我们能得出Teacher表和Student表在数据库中的关系如下图

    2.6K80

    数据库模型设计——关系的实现

    在实体关系模型中,我们知道有三种关系:一对一、一对多、多对多。...这只是概念上的关系,但是在真实的关系数据库中,我们只有外键,并没有这三种关系,那么我们就来说一说在关系数据库管理系统中,怎么实现这三种关系。 一对多 这里先讲解一对多,因为这个关系最简单。...一对多和多对一是一回事,所以就不再提多对一这个词。一对多的概念是一个对象A会对应多个对象B,而从B的角度看,一个对象B只会对于一个对象A。比如说班级和学生就是一对多关系。...一对一的RDBMS实现是在其中的一个表上建立外键指向另一个表,同时在该外键列上建立唯一约束。比如前面说到的班主任和班级关系,我们可以在班级表建立班主任字段,然后再在该字段建立唯一约束。...由于整个数据库的操作都是由我们开发的程序来完成的,所以我们程序可以在开发过程中做好各方面的一致性检查,保证操作的数据是满足外键约束的,而不需要真正的存在这样一个外键约束。

    1.2K10

    【MySQL数据库】多表关系与多表联合查询

    ​​目录MySQL多表关系一对一一对多多对多MySQL外键约束创建外键数据插入删除多表联合查询交叉连接查询内连接查询外连接查询子查询关键字自关联MySQL多表关系MySQL表与表之间的三种关系一对多关系...:最常见的关系:学生对班级 , 员工对部门多对多关系:学生与课程 , 用户与角色一对一关系:使用较少,因为一对一关系可以合成为一张表一对一 一个学生对应一个身份证号码 一对多一个部门可以有多名员工,但一个员工只能归于一个部门...在多的一方建立外外键指向一的一方​编辑多对多 下表为多对多关系,由下表可知多对多关系的中间表至少需要2个外键​编辑 MySQL外键约束创建外键 格式: constraint 外键名> foreign...员工年龄 dept_id varchar(20), -- 员工所属部门 constraint emp_fk foreign key (dept_id)references dept (deptno) –- 外键约束...返回的数据类型单行单列:返回的是一个具体列的内容,可以理解为一个单值数据;单行多列:返回一行数据中多个列的内容;多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围;多行多列:查询返回的结果是一张临时表

    3.5K30

    MySQL之多表查询

    NO ACTION 3.CASCADE 4.SET NULL RESTRICT 同no action, 都是立即检查外键约束 NO ACTION 如果子表中有匹配的记录,则不允许对父表对应候选键进行update...,如果被DEFAULT约束的位置没有值,那么这个位置将会被DEFAULT的值填充   九.表与表之间的关系 1.表关系分类:   总体可以分为三类: 一对一 、一对多(多对一) 、多对多 2.如何区分表与表之间是什么关系...#分析步骤: #多对一 /一对多 #1.站在左表的角度去看右表(情况一) 如果左表中的一条记录,对应右表中多条记录.那么他们的关系则为 一对多 关系.约束关系为:左表普通字段, 对应右表foreign...例子3:....  2.一对一关系  例如:一个中国公民只能有一个身份证信息  分析: 一对一的表关系实际上是 变异了的 一对多关系....通过在从表的外键字段上添加唯一约束(unique)来实现一对一表关系. ?

    8.9K130

    MySQL数据查询之多表查询

    NO ACTION 3.CASCADE 4.SET NULL RESTRICT 同no action, 都是立即检查外键约束 NO ACTION 如果子表中有匹配的记录,则不允许对父表对应候选键进行update...,如果被DEFAULT约束的位置没有值,那么这个位置将会被DEFAULT的值填充 表与表之间的联系 1.表关系分类:   总体可以分为三类: 一对一 、一对多(多对一) 、多对多 2.如何区分表与表之间是什么关系...#分析步骤: #多对一 /一对多 #1.站在左表的角度去看右表(情况一) 如果左表中的一条记录,对应右表中多条记录.那么他们的关系则为 一对多 关系.约束关系为:左表普通字段, 对应右表foreign...其他示例 2.一对一关系 例如:一个中国公民只能有一个身份证信息 分析: 一对一的表关系实际上是 变异了的 一对多关系....通过在从表的外键字段上添加唯一约束(unique)来实现一对一表关系.

    9.1K20

    MySQL之库表操作详述

    8.支持外键约束,不支持全文索引(5.5之前),以后的都支持了。         9.和MyISAM引擎比较,InnoDB对硬件资源要求还是比较高的。        ...4.4外键foreign key:其实就是表明表与表之间的关系,表与表之间有三种关系,一对一,一对多,多对多,在任何情况下都得先把‘一’的表(就相当于被指向的表)创建。   ...一对多关系 先创建‘一’的表,就是dep表 create table dep(id int primary key,name char(10),comment char(10));  #然后插入数据就行...);   一对一关系:就只要把外键设为唯一的就行了 先创建被指向的表,即customer表 create table customer(id int primary key,name char(10)...cascade);   多对多关系:我们就应该建立第三个表(关联表)来连接连个表的关系 多对多关系表,就应该最后创建关联表就行,先创建另外两个表就行,即author表和book表 create table

    85310

    MySQL约束课堂笔记

    一对多(多对一): * 如:部门和员工 * 分析:一个部门有多个员工,一个员工只能对应一个部门 3....多对多: * 如:学生和课程 * 分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择 2. 实现关系: 1....一对多(多对一): * 如:部门和员工 * 实现方式:在多的一方建立外键,指向一的一方的主键。 2....多对多: * 如:学生和课程 * 实现方式:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键 3....一对一(了解): * 如:人和身份证 * 实现方式:一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键。 3.

    40010
    领券