Django的多表操作
多表操作 1. 表之间存在三种关系: 多对一, 一对一, 多对多, 如何确定表与表之间的关系? 左表<------------------------------->右表 # 步骤一:先分析 #分析1、先站在左表的角度 是否左表的多条记录可以对应右表的一条记录 #分析2、再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录 # 步骤二:后确定关系 # 多对一 如果只有"分析1"成立,那么可以确定两张表的关系是:左表多对一右表,关联字段应该创建在左表中,然后foreign key 右表一个字段(通常是id) 如果只有"分析2"成立,那么可以确定两张表的关系是:右表多对一左表,关联字段应该创建在右表中,然后foreign key 左表一个字段(通常是id) # 一对一 如果"分析1"和"分析2"都不成立,而是左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础上,将左表的关联字段设置成unique即可 # 多对多 如果"分析1"和"分析2"同时成立,则证明这两张表是一个双向的多对一,即多对多,需要创建一张单独的新表来专门存放二者的关系,关联字段应该创建在新表中,然后在新表中 2. 举列说明 书籍表 : book 出版社表: publish 作者表: author 作者详情表: author