- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
from django.db import models
# Класс Студент
class Student(models.Model):
name = models.CharField(max_length=50) # ФИО студента
group = models.CharField(max_length=10) # Группа студента
starosta = models.BooleanField(default=False) # Является ли студент старостой группы?
# Класс Пара
class Pair(models.Model):
name = models.CharField(max_length=30) # Название пары
auditory = models.CharField(max_length=7) # Аудитория
lecturer = models.CharField(max_length=50) # ФИО преподавателя
# Класс День
class Day(models.Model):
pair1 = models.ForeignKey(Pair) # Первая пара
pair2 = models.ForeignKey(Pair) # Вторая пара
pair3 = models.ForeignKey(Pair) # Третья пара
pair4 = models.ForeignKey(Pair) # Четвёртая пара
pair5 = models.ForeignKey(Pair) # Пятая пара
pair6 = models.ForeignKey(Pair) # Шестая пара
pair7 = models.ForeignKey(Pair) # Седьмая пара
# Класс Расписание
class TimeTable(models.Model):
group = models.CharField(max_length=10) # Группа, к которой относится расписание
weekcolor = models.BooleanField() # False, 0 - Красная неделя; True, 1 - Синяя неделя
monday = models.ForeignKey(Day) # Понедельник
tuesday = models.ForeignKey(Day) # Вторник
wednesday = models.ForeignKey(Day) # Среда
thursday = models.ForeignKey(Day) # Четверг
friday = models.ForeignKey(Day) # Пятница
saturday = models.ForeignKey(Day) # Суббота
так а где вы собственно видите проблему?
выглядит как нормальная модель недельного расписания.
главный запрос "показать расписание препода" модель поддерживает. и это приблизительно 100% запросов какие кто либо когда будет делать к такой модели.
для правильного расписания здесь все равно нехватает предмета урока как объекта. если бы задавались еще и предметы, и веса предметов, и возможные комбинации предметов, а так же моделью поддерживались замены, тогда невозможность сделать выборку была бы говном. а для такой простой модели, отображающей что висит на стене - это в самый раз.
Чтобы вычислить число рабочих часов преподавателя и оптимизировать их эксплуатацию на лекциях в рамках потока.
Т.к. читать лекции профессору дешевле сразу 5 группам, а практические занятия проводимые аспирантами намного дешевле, в рамках штатного расписния конечно.
Должен составить расписание ты.