维护数据库中的教师可用性计时

时间:2012-01-31 18:30:36

标签: python django django-models

我在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。请建议我一个很好的方法来实现这一点。感谢

1 个答案:

答案 0 :(得分:3)

我建议使用如下模型:

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()
)