您的位置:首页 > 编程语言 > Go语言

Django--models连表构建

2016-03-23 10:55 281 查看
需求models多表(一对多、多对多、一对一)的构建

速查1、一对多

2、多对多

3、一对一

知识点1、连表结构

一对多:models.ForeignKey(其他表),A表的一个字段对应B表的多个字段;

多对多:models.ManyToManyField(其他表),A表中的一个字段对应B表中的多行(自动创建一关系表);

一对一:models.OneToOneField(其他表),

2、应用场景

一对多:当一张表中创建一行数据时,有一个单选的下拉框(可以被重复选择)
例如:创建用户信息时候,需要选择一个用户类型【普通用户】【金牌用户】【铂金用户】等。

多对多:在某表中创建一行数据时,有一个可以多选的下拉框
例如:创建用户信息,需要为用户指定多个爱好

一对一:在某表中创建一行数据时,有一个单选的下拉框(下拉框中的内容被用过一次就消失了)
例如:原有含10列数据的一张表保存相关信息,经过一段时间之后,10列无法满足需求,需要为原来的表再添加5列数据

详细

1、一对多--ForeignKey

1.1 默认连接id字段models.py
cmdDjango--path > python manager.py makemigrations

Django--path > python manager.py migrate

db--gender表


db--user表


1.2 连接不是id的字段

外键列,默认是用id来连接,这个字段名称自动改为“xx_id”列,如果使用某个字段连接,需要参数to-field:"连接的字段";​

models.py


db--salary(薪资)表


db--user表


2、多对多--ManyToManyField

models.py
db--hobby(爱好)表


db--user表


user表中并没有创建hobby列,而是新建了一张表,记录了他们的对应关系。

db--user_hobby


3、一对一--OneToOneField

外键的表每行只能被选择一次

models.py
来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: