模型_02
一、关联关系
1、概述
关联关系指的是数据表之间的数据是相互依赖和影响关系,表之间有从属关系,比如,有一个用户表,用户又有订单表,则用户表与订单表之间就存在从属关系。
2、关联关系的种类
- 一对一 一个人一本护照
- 一对多 一个部门可以有多个员工
- 多对多 一个学生有多门课,一门课有多个学生
3、Model中的关联关系
3.1 关系类型字段
- ForeignKey(to=关系对方的类或类名或‘self’,on_delete=级联选项)
- OneToOneField(to=关系对方的类或类名或‘self’,on_delete=级联选项)
- ManyToManyField(to=关系对方的类或类名或‘self’)
4、关联关系Model搭建
4.1 一对多Model
1:*
class Category(models.Model):
title = models.CharField(max_length=20)
note = models.CharField(max_length=20)
class Meta:
db_table="t_category"
class Goods(models.Model):
title = models.CharField(max_length=20,unique=True)
price = models.FloatField()
cate = models.ForeignKey(to=Category,on_delete=models.CASCADE) #关系属性
class Meta:
db_table = "t_goods"
4.2 一对一Model
1:1
class Passport(models.Model):
note = models.CharField(max_length=20)
person = models.OneToOneField(to="Person",on_delete=models.CASCADE,null=True) #关系属性
class Meta:
db_table="t_passport"
class Person(models.Model):
name = models.CharField(max_length=20)
age = models.IntegerField()
class Meta:
db_table="t_person"
4.3 多对多Model
*:*
class Student(models.Model):
name = models.CharField(max_length=20)
age = models.IntegerField()
class Meta:
db_table="t_student"