【发布时间】:2015-02-15 08:21:36
【问题描述】:
我有轮班工作的机器。每台机器都有自己的班次,可以有不同的持续时间。这些是 Django 中的模型:
class Shift(models.Model):
name = models.CharField(max_length=50)
class Machinery(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=30)
shifts = models.ManyToManyField(Shift, through='MachineryShift')
class MachineryShift(models.Model):
machinery = models.ForeignKey('Machinery')
shift = models.ForeignKey('Shift')
shift_start_time = models.TimeField()
shift_end_time = models.TimeField()
我需要每台机械都有自己的一套班次,这些模型满足要求,但感觉这不是最好的解决方案。
有没有更好的方法来解决这个问题?
【问题讨论】:
-
你为什么会有这种感觉?我觉得还不错
-
是的,确实如此。但是 Shift 模型没有很强的附加值,并且使数据库更加复杂。我从@xyres 的答案中找到了最佳解决方案。它也遵循 Python 之禅:简单胜于复杂。 :)
标签: django django-models many-to-many django-orm