实际上,这个问题让我困惑了很长时间。
说,我有两个模型,Course
和CourseDate
,如下所示:
class Course(models.Model):
name = model.CharField()
class CourseDate(models.Model):
course = modelds.ForienKey(Course)
date = models.DateField()
其中CourseDate
是特定课程的日期。
我还可以按如下方式定义Course
并弃掉CourseDate
:
class Course(models.Model):
name = models.CharField()
dates = models.CharField()
其中dates
字段包含由字符串表示的日期。例如:
dates = '2016-10-1,2016-10-12,2016-10-30'
我不知道第二种解决方案是否有点“作弊”。那么,哪一个更好?
答案 0 :(得分:2)
我不知道作弊行为,但这肯定违背了良好的数据库设计。更重要的是,它阻止您在该字段上进行几乎所有类型的有用查询。如果您想知道在特定日期的两天内有所有日期的课程怎么办?使用解决方案2几乎不可能做到这一点,但使用解决方案1则很简单。