有过数据库相关经验的人一定知道,数据库中的表一般不是独立存在的,表与表之间都会存在联系,Django的模型是数据库表与Python类之间的映射,那么模型之间也会存在关系,Django的模型之间存在3中最常用的关系:多对一、多对多、一对一。

多对一关系

一张表中的多行数据对应另一张表的一行数据,比如我有一个博客系统,包含多个作者,每个作者都发表过多篇文章,那么文章与作者之间就是多对一的关系,可以看以下数据库截图:

用户admin发表了3篇文章,admin3发表了一篇文章,admin7发表了5篇文章。

模型通过django.db.models.ForeignKey实现多对一关系,并且ForeignKey一般写在多的一方具体写法如下:

多对多关系

这种关系也比较常见,比如用户和用户组之间的关系,通常一家公司会有很多员工,每一个员工都会在一个或多个用户组中,每个用户组里面也会存在一个或多个员工,此时员工与用户组之间就构成了多对多的关系。

下面是一个简单的人力资源表,公司有3个部门,其中销售部的郝总与研发部的郑总又同时属于公司管理部:

此时可以通过ManyToManyField字段类型实现:

一对一关系

这种映射关系用的比较少,至少小编我是没有用过,我能想象的使用场景有以下几种:

1. 对已知表的扩展,比如对Django自带的user表进行扩展,为每一个用户数据添加额外信息。

2. 复制其它第三方的数据表,有时由于我们没有权限修改其他公司的产品,所以需要将他的数据复制过来,那么就会用到一对一的关系。

django与python之间关系_Django 模型中表与表之间关系相关推荐

  1. mysql中表与表的关系代码_mysql 中表与表之间的关系

    如何找出两张表的对应关系 分析步骤: 1.先找出左表的角度去找 ​ 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段 (通常是id) 2.再站 ...

  2. (Java)通过案例讲解项目中表与表之间关联的处理步骤

    这里通过一个用户表和角色表关联的案例,向大家展示,项目中对于表与表之间关系的处理步骤 文章目录 一.案例介绍 二.用户与角色关联 一.案例介绍 (1)user 用户表: (2)role 角色表: (3 ...

  3. django调用python脚本返回_Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境...

    单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的settin ...

  4. django调用python脚本返回_Django使用HttpResponse返回图片并显示的方法

    做了一个关于Django的小案例,想要在网页中显示图片,直接在img标签的src属性写图片的路径是不能显示的,查询资料发现在Django中使用图片这类的资源相当繁琐需要进行一定D的配置,摸索了一会没有 ...

  5. Django REST 框架详解 03 | 模型建立与表设计

    文章目录 一.设计表 二.表关系 1.表关系设置 2.断开表关联 三.级联操作 1.CASCADE 2.SET_NULL 3.SET_DEFAULT 4.DO_NOTHING 四.Admin 一.设计 ...

  6. visio连接mysql数据库表_「数据库关系图」使用Visio 2010 画数据库中表与表的关系 - seo实验室...

    数据库关系图 1.在visio中新建数据库模型图 打开visio 2010,文件->新建->数据库->数据库模型图.建立数据库模型图之后,菜单栏多出一个菜单项"数据库&qu ...

  7. mysql视图和主表关系_MySQL-视图和基本表的关系与区别

    1.视图是数据库数据的特定子集.可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响. 2.视图是抽象的,他在使用时,从表里提取出数据, ...

  8. sequelize模型关联_Node.js Sequelize 模型(表)之间的关联及关系模型的操作

    Sequelize模型之间存在关联关系,这些关系代表了数据库中对应表之间的主/外键关系.基于模型关系可以实现关联表之间的连接查询.更新.删除等操作.本文将通过一个示例,介绍模型的定义,创建模型关联关系 ...

  9. python跑模型是什么意思_django模型是什么意思

    模型是一个定义数据源的数据,它包含要存储数据的一些属性和行为.通常,每一个模型对应数据库中的一个数据表. 每一个模型是django.db.models.Model的子类 每一个模型属性代表数据表的一个 ...

最新文章

  1. 将Java程序变成可执行文件的一个简单方法
  2. 15年资深产品经理判官:怎样搭建完整的产品矩阵
  3. Android客户端内置内存工具进行崩溃定位的实践经验
  4. VS2013无法启动 IIS Express Web解决办法
  5. java 03_Java基础03—流程控制
  6. 复刻了一个史上最强 Redis 6.0 版本
  7. 信息学奥赛一本通C++语言——1005:地球人口承载力估计
  8. 清华大学操作系统OS学习(七)——进程控制
  9. react刷新页面_【跟着官网学React】Hello World
  10. 花生壳+FileZilla搭建公网FTP服务器
  11. python中怎么压缩文件_使用Python实现文件压缩和解压
  12. wincc上下文不存在或无效是_wincc安装
  13. 文件系统(一)---文件系统基础知识
  14. 最新最全的前端面试题集锦之 微信小程序 篇(从基础到高级)
  15. F5学习——Part 1(基于LTM模块的基本组网模式)
  16. ccflow 代码分析
  17. Ubuntu 微信QQ安装
  18. 在线 PHP运行工具 数据库可控
  19. DVWA 之文件上传漏洞
  20. 重庆智博会|2022智博会到底有哪些看点?拭目以待

热门文章

  1. openlayer 图层上下_OpenLayers 3 的图层体系结构
  2. 计算机一级在线解析,2016年计算机一级试题及答案解析
  3. 修改10g RAC public or private or virtual IP [Oracle]
  4. maven学习(4)
  5. 将输入流读取成String后返回
  6. Java Swing Mysql学生成绩管理系统
  7. 基于JAVA+SpringMVC+MYSQL的医院后勤管理系统
  8. 7.3联盟最多的服务器,1.7.3 超级服务器inetd和xinetd
  9. [******] 树问题:普通二叉树的创建与遍历
  10. 微信公众号开发C#系列-5、用户和用户组管理-支持同步