Django模型层之多表操作
Django模型层之多表操作 一 、表关系回顾 在讲解 MySQL 时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的 。 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息表,该表有四个字段:工号、姓名、部门名、部门职能描述,此时若公司有1万名员工,但只有3个部门,因为每一名员工后都需要跟着部门信息(部门名、部门职能),所以将会导致部门信息出现大量重复、浪费空间。 解决方法就是将数据存放于不同的表中,然后基于 foreign key 建立表之间的关联关系。 细说的话,表之间存在三种关系:多对一、一对一、多对多,那如何确定两张表之间的关系呢?按照下述步骤操作即可 左表<---------------------------------------------->右表 # 步骤一:先分析 # 分析1、先站在左表的角度 是否左表的多条记录可以对应右表的一条记录 # 分析2:再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录 # 步骤二:后确定关系 # 多对一 如果只有"分析1"成立,那么可以确定两张表的关系是:左表多对一右表,关联字段应该创建在左表中,然后foreign key 右表一个字段(通常是id) 如果只有"分析2"成立,那么可以确定两张表的关系是:右表多对一左表,关联字段应该创建在右表中,然后foreign key 左表一个字段(通常是id) #