django項目數據庫中 表結構設計 和 同一表中設置多個聯合唯一 存在的問題分析
阿新 • • 發佈:2019-03-31
images 文件中 ... -o 表結構設計 char 分享圖片 vpd process 問題描述:
我現在有的表結構是班級表,課程表,
班級表的主要結構如下
課程名稱 | 學 期 | 校 區 | 任課老師 s |
---|---|---|---|
class_title | time | campuses | teachers |
表結構中:
class_title,time,campusees必須設置聯合唯一,
所以在django中的modes.py 文件中設置如下
from django.db import models class ClassList(models.Model): """ 班級表 """ course = models.CharField("課程名稱", max_length=64, choices=course_choices) semester = models.IntegerField("學期") campuses = models.ForeignKey(‘Campuses‘, verbose_name="校區") teachers = models.ManyToManyField(‘UserProfile‘, verbose_name="老師") class Meta: unique_together = ("course", "semester", ‘campuses‘)
課程表的主要結構如下
班 級 | 授課內容 | 節 次 | 授課時間 | 班主任 |
---|---|---|---|---|
re_class | content | day_num | date | b_teacher |
設置class與date_num為聯合唯一,保證一個班級一天只能上一節課
class CourseRecord(models.Model): """課程記錄表""" day_num = models.IntegerField("節次", help_text="此處填寫第幾節課或第幾天課程...,必須為數字") date = models.DateField(auto_now_add=True, verbose_name="上課日期") course_title = models.CharField(‘本節課程標題‘, max_length=64, blank=True, null=True) re_class = models.ForeignKey(‘ClassList‘, verbose_name="班級") teacher = models.ForeignKey(‘UserProfile‘, verbose_name="班主任") class Meta: unique_together = (‘re_class‘, ‘day_num‘)
但是就存在問題了???
如何保證同一個老師不會被’分身‘??
如:
python-1期-海南 3-31 第一節 penny老師
python-2期-上海 3-31 第一節 penny老師
如何解決呢???
方法一重新建表結構:
班 級 | 授課內容 | 節 次 | 授課時間 | 班主任 | 授課教師 |
---|---|---|---|---|---|
re_class | content | day_num | date | b_teacher | teacher |
將節次,授課時間,授課老師設為聯合唯一
而已經設置class與date_num為聯合唯一
這可就出現了倆個聯合唯一的問題了???
class Meta: unique_together = [(‘re_class‘, ‘day_num‘), (‘date‘, ‘day_num‘, ‘teacher‘)]
]
但是:
雖然可以限制,但是會出現飄頁面錯誤的問題!!!!
django項目數據庫中 表結構設計 和 同一表中設置多個聯合唯一 存在的問題分析