Django笔记:数据库多表操作

2021-05-30  本文已影响0人  倔犟的贝壳

数据库的表与表之间有三种关系:一对一、一对多、多对多。
那么如何通过模型建立这些关系呢

# 一对一
#酒店预订
class Reservation(models.Model):
    id = models.CharField(max_length=30,primary_key=True)
    name = models.CharField(max_length=30)
    booking_date = models.DateTimeField()
    arrival_date = models.DateField()

#当日订单入住状态
class TodayOrderStatus(models.Model):
    booking_id = models.OneToOneField(Reservation,on_delete=models.CASCADE)
    status = models.IntegerField()
ER图
#产品类型
class Type(models.Model):
    id = models.AutoField(primary_key=True)
    type_name = models.CharField(max_length=20)

#产品
class Product2(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50)
    weight = models.CharField(max_length=20)
    type = models.ForeignKey(Type,on_delete=models.CASCADE)
ER图
# 多对多
#科目表
class Project(models.Model):
    id = models.CharField(max_length=20,primary_key=True)
    name = models.CharField(max_length=50)
#学生表
class Student(models.Model):
    no = models.CharField(max_length=20,primary_key=True)
    name = models.CharField(max_length=30)
    sex = models.CharField(max_length=2)
    age = models.IntegerField()
    project = models.ManyToManyField(Project)
ER图
上一篇 下一篇

猜你喜欢

热点阅读