我正在设计一个基于周的菜单应用程序。我想知道我是否应该这样做:
class MenuWeek(models.Model):
sunday = OneToOneField("MenuDay")
monday = OneToOneField("MenuDay")
#etc through Saturday
class MenuDay(models.Model):
# some stuff here, but not a foreign key to MenuWeek
而不是:
class MenuDay(models.Model):
week = ForeignKey("MenuWeek") # (with no OneToOne's defined in MenuWeek)
第一种方法是实现父和子之间的短"固定长度"列表关系的好方法,还是我应该在MenuDay中坚持使用ForeignKey并通过表单验证强制长度?我在想,第一种方式可能会让行政部门更干净,因为你可以清楚地知道你是在一周中的哪一天编辑。
谢谢
我永远不会使用你的第一个选项。为了在每个工作日运行特定的代码段,您将在各处重复自己的工作。第二个选项将会产生更好的代码。
首先,第二个选项要好得多。但是,您甚至可以摆脱MenuWeek
,只是在MenuDay
中添加日期或星期字段,并以这种方式进行过滤,除非MenuWeek
应该保存一些数据。