一、示例的表关系
这里需注意表与表之间的主从表关系,因为外键字段需要在主表(“多”的表)
1.对于助教来说,导师是从表
2.对于学生来说,课程是从表
3.对于课程来说,导师是从表
PS.
主从表的确定,需要从业务角度来确定。比如说如果这个系统是开发给老师用的,那么课程是主表;如果开发给学生用的,那么学生是主表。
对于我们来说项目和接口实际是主从关系,有关联,即项目是接口的主键,一对多;
- 新建
Interface
应用:
python manage.py startapp interfaces
2 .注册应用:setting.py
中:
'interfaces.apps.InterfacesConfig',
3 .interfaces/models.py
中建立表结构:
from django.db import models
# Create your models here.
class Interfaces(models.Model):
# 创建Projects模型类
name = models.CharField(verbose_name="接口名称",max_length=200,unique=True,help_text="接口名称")
method = models.CharField(verbose_name="接口类型",max_length=50,help_text="接口类型")
desc = models.TextField(verbose_name="简要描述",max_length=200,help_text="简要描述",blank=True,default="")
#设置外键
# 第一个参数为关联的模型路径(应用名.模型类)
#第二个参数为副表删除后,该字段的处理方式
#CASCADE:子表也会被删除
#SET_NULL:当前外键会被设置为None
# PROJECT:会报错
# SET_DEFAULT:设置默认值同时需要指定默认值,null=True
project = models.ForeignKey('projects.Projects',on_delete=models.CASCADE,
verbose_name="所属项目",help_text="所属项目",null=True, blank=True)
#设定数据库名称等信息
class Meta:
db_table="tb_interfaces"
verbose_name="接口"
verbose_name_plural="接口"
- 进行表迁移:
python manage.py makemigrations # 生成migrations临时文件
python manage.py migrate # 根据migrations直接生成数据库
- 迁移结果: