在数据库中维护教师可用时间

2024-10-03 21:31:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在django创建一个基于online tutor概念的网站。我一直在坚持老师上课的时间安排。e.g. mon-fri 10am-2pm (dont know if it is good approach to keep it like this or you have good idea??)我不明白表的结构应该是什么。现在我想的是,这将是一个数组的数组,以保持一周中每个时隙的可用性。一周中有7天应该在那里。e.g. list[7],(list[24], Boolean)。这是个好办法吗??使用此数据结构将不允许我在将来基于可用性计时执行filtering。请给我一个好的方法来实现这一点。谢谢


Tags: django概念网站时间it数组listonline
1条回答
网友
1楼 · 发布于 2024-10-03 21:31:02

我建议采用以下模式:

class Availability(models.Model):
    WEEKDAY_CHOICES = (
        (0, 'Monday'),
        (1, 'Tuesday'),
        (2, 'Wednesday'),
        (3, 'Thursday'),
        (4, 'Friday'),
        (5, 'Saturday'),
        (6, 'Sunday'),
    )

    weekday = models.PositiveSmallIntegerField(choices=WEEKDAY_CHOICES)
    start_time = models.TimeField()
    end_time = moels.TimeField()

class Tutor(models.Model):
    available_times = models.ManyToManyField(Availability)

然后,您可以通过以下方式立即查询可用的导师:

Tutor.objects.filter(
    available_times__weekday=datetime.weekday(),
    available_times__start_time__lte=time.time(),
    available_times__end_time__gt=time.time()
)

相关问题 更多 >