首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django进阶-6-ORM正向与反向查找

学习 django 中 orm 时候,可以把一对多,多对多,分为正向和反向查找两种方式。...Foreign_Key 字段在哪张表决定Foreign_Key字段在哪张表就可以哪张表使用 Foreign_Key字段连表,反之没有Foreign_Key 字段就使用与其关联 小写表名; 1对多...:对象.外键.关联表字段,values(外键字段__关联表字段) 多对多:外键字段.all() ② 反向连表操作 通过value、value_list、fifter 方式反向跨表:小写表名__关联表字段...多对多:在某表中创建一行数据是,有一个可以多选下拉框 例如:创建用户信息,需要为用户指定多个爱好 一对一:在某表中创建一行数据时,有一个单选下拉框(下拉框中内容被用过一次就消失了 例如:原有含10...数据一张表保存相关信息,经过一段时间之后,10无法满足需求,需要为原来表再添加5数据

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

3分钟短文 | Laravel获取关联表指定3个方法

今天我们说一说,在Laravel中,如何关联模型,以及制定返回,以精简返回数据。 学习时间 假如有两个模型 User 和 Post,一个用户会发布多个post,也就是一对多关联关系。...with语句 模型with语句用于调用模型内声明关联关系,其实它接收一个数组,可以在查询时关联多张表,同时支持一个闭包,用于对关联查询语句进行裁切。...}))->get(); 闭包内$query拼接SQL语句,并指定 select 选取,那么框架生成SQL语句,就只会返回 id,username 。...关联关系 我们注意到,在关联关系声明上,第一节仅使用了 belongTo,hasMany 这样属性,其实还可以链式调用。这样对于所有使用 with 语句关联模型查询,都会生效。...:-( 写在最后 本文通过2种确切可用方式,裁剪了关联模型返回内容。 在实际代码中,第一种使用闭包修剪SQL语句,用途较为广泛。 第二种方式影响全局,一般不推荐。

2K20

跟我一起学Laravel-EloquentORM进阶部分

Phone', 'foreign_key', 'local_key'); 定义反向关系 定义上述模型之后,就可以使用User模型获取Phone模型了,当然也可以通过Phone模型获取所属User了,...假设有一个帖子,它有很多关联评论信息,这种情况下应该使用一对多关联,使用hasMany方法 <?...*/ public function users() { return $this->belongsToMany('App\User'); } } 检索中间表值...对多对多关系来说,引入了一个中间表,因此需要有方法能够查询到中间表值,比如关系确立时间等,使用pivot属性查询中间表 $user = App\User::find(1); foreach (...关联关系查询 在Eloquent中,所有的关系都是使用函数定义,可以在不执行关联查询情况下获取关联实例。

3.9K50

TP入门第十二天

> 注意函数定义和使用顺序对应关系,通常来说函数第一个参数就是前面的变量或者前一个函数调用返回结果,如果你变量并不是函数第一个参数,需要使用定位符号,例如: {$create_time|date...避免js混乱:可以使用在大括号之后加入空格、使用literal、修改定界符 2、关联模型 关联关系: 一对一关联 :ONE_TO_ONE,包括HAS_ONE 和 BELONGS_TO 一对多关联 :ONE_TO_MANY...,包括HAS_MANY 和 BELONGS_TO 多对多关联 :MANY_TO_MANY 关联关系包括下面四种:HAS_ONE、BELONGS_TO、HAS_MANY和MANY_TO_MANY。...一个模型根据业务模型复杂程度可以同时定义多个关联,不受限制,所有的关联定义都统一在模型类 $_link成员变量里面定义,并且可以支持动态定义。...要支持关联操作,模型类必须继承RelationModel类(重要属性请参看手册进行学习研究) 具体关联CURD操作手册中有详细讲解,后续开发中使用到会有详细说明

95660

Django中ORM操作

Foreign_Key字段在哪张表决定Foreign_Key字段在哪张表就可以哪张表使用Foreign_Key字段连表,反之没有Foreign_Key字段就使用与其关联 小写表名; 1对多:对象...__关联表字段 通过对象形式反向跨表:小写表名_set().all() 1对多 如果A表1条记录对应B表中N条记录成立,两表之间就是1对多关系;在1对多关系中 A表就是主表,B表为子表...('UserType') 到B表(注意外键表名加引号) 就意味着 写在写A表B表主键,(一),代表B表多个(一行)称为1对多, 查询 总结:利用orm获取 数据库表中多个数据 获取到数据类型本质上都是...().first() result = obj.userinfo_set.all() [userinfo对象,userinfo对象,] 小写表名 得到有外键关系 #因为使用values取值取得是字典不是对象...') v = UserGroup.objects.values('id','title','小写表名称__age') 小写表名 得到有外键关系 v = UserGroup.objects.values_list

4.7K10

如何从 MongoDB 迁移到 MySQL

也就是把所有 embeds_many 和 embeds_one 关系都改成 has_many 和 has_one,同时将 embedded_in 都替换成 belongs_to,同时我们需要将工程中对应测试都改成这种引用关系...,首先是为所有的表添加 uuid 字段,同时为所有的外键例如 post_id 创建对应 post_uuid 字段,通过 uuid 将两者关联起来: ?...除此之外,我们也需要处理一些复杂模型关系,比如 Mongoid 中 inverse_of 在 ActiveRecord 中叫做foreign_key 等等,这些修改其实都并不复杂,只是如果想要将这部分代码全部处理掉...字段添加相应 post_uuid : ?...#delete_obsolete_columns 和 DatabaseTransformer#update_rename_columns 方法删除部分已有的、更新一些数据最后将所有的 id 都变成

5K52

NoSQL如何构建数据存储模型

如果我们使用族数据库来搞的话,我们就可以调整各个次序了,我们可以给经常用到起个能够排在前面的名字,这样就可以优先读取这些列了。...当我们使用族来建模时,应该主要考虑是查询需求,而不是写入需求;建模通则就是要便于查询,而对写入操作则可以不遵循什么规范和模式,官方说法叫“反规范化”。(译者曰:记住这句其实就够了!)...你可以想象,其实有很多种建模方法;一种方法就是把 Customer 和 Order 分别存储到不同族中(像图 3.4)。...在这个图里我们看到, 对于所有订单引用 都被 放在了Customer族中。像类似这种“反规范化”事情是经常要做,就为了我们查询方便。 Figure 3.4....每个node和其它node关系都各自独立。这些关系也有个名字,类似PURCHASED, PAID_WITH, 或者 BELONGS_TO (见图3.5);这些关系名可以让你穿越整个graph。

1.6K130

请在Java项目抛弃Mybatis、Hibernate,是时候上新了--ObjectiveSQL

Java 代码与SQL 语句有机结合,改变了传统SQL 编程模型(以字符串拼接为主编程模型)。...l简单关系查询(has_one,has_many和belongs_to)和分页查询 l使用Java语法编写SQL表达式(arithmetic,comparison和logical) 为什么要选择ObjectiveSQL...l如果您项目专注于基于关系数据库数据分析,以及SQL语句中许多算术表达式。...l如果您不想编写数据库访问和各种配置文件Java代码,ObjectiveSQL动态代码生成将帮助您无需编码即可访问数据库 性能展示 ObjectiveSQL使用例子 复杂SQL编程 如您所见,...零编码简单SQL编程 持久化(Persistence) 计数和查询(Counting and Quering) 关联查询(Relation Quering) 分页查询(Paged Quering

44910

mysql常见建表选项和约束

create table选项 指定选项:default 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了默认值,将自动得到默认值 ;如果没有,则为null。...,可以通过该表查询约束信息 常见约束类型 not null非空,指定某不为空(注意区分空和空格关系) unique:唯一约束,指定某和几列组合数据不能重复 primary key:主键约束,指定某数据不能重复...,外键是构建于一个表两个字段或者是两个表两个字段之间参照关系 注意: 具有外键约束值不能随便给,必须满足外键所引用主键取值 一张表中可以定义多个外键 外键默认可以给null值 父子表...外键所在表叫做子表,从表 外键所引用主键所在表叫做父表,主表 constraint emp_deptid_fk foreign_key(deptid) references dept(deptid...1,不会覆盖原来删除编号 数值自动增长,类型只能是整数类型 通常给主键添加自增长约束

10610

建议收藏——Mazur SQL 风格指南

本指南记录了我对格式化 SQL 喜好,希望对其他人有一些用处。如果您或您团队还没有 SQL 风格指南,那么它可以作为一个很好起点,您可以根据自己喜好来采用和更新它。...则推荐单行: -- 好 select * from users -- 好 select id from users -- 好 select count(*) from users 一旦你需要查询更多或比较复杂...命约定 将主键放到最前面,然后是外键,最后是其他。如果有任何系统(如 created_at、updated_at、is_deleted 等等,把它们放到最后。...可以更容易确定连接是否导致结果呈扇形分布: -- 好 select ... from users left join charges on users.id = charges.user_id -- primary_key = foreign_key...one-to-many --> fanout select ... from charges left join users on charges.user_id = users.id -- foreign_key

85920

深入理解 Laravel Eloquent(三)——模型间关系(关联

官方英文文档中叫 Relationships,个人认为翻译成 “模型间关系” 比现在关联” 更好理解一点哈哈。...一对一关系 顾名思义,这描述是两个模型之间一对一关系。这种关系是不需要中间表。...---- 这里最难地方在于后面的两个 foreign_key 和 local_key 设置,大家可以就此记住:在 User 类中,无论 hasOne 谁,第二个参数都是 `user_id`,第三个参数一般都是...因为这里是 `hasMany`,操作是一个对象集合。 相应 belongsTo() 用法跟上面一对一关系一样: <?...其他关系 Eloquent 还提供 “远层一对多关联”、“多态关联” 和 “多态多对多关联” 这另外三种用法,经过上面的学习,我们已经掌握了 Eloquent 模型间关系基本概念和使用方法,剩下几种不常用方法就留到我们用到时候再自己探索吧

2.6K30
领券