一、示例的表關係
這裏需注意表與表之間的主從表關係,因爲外鍵字段需要在主表(“多”的表)
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直接生成數據庫
- 遷移結果: