2016-10-07 2 views
0

사실이 질문은 오랫동안 나를 혼란스럽게 만들었습니다.Django 모델 : 필드의 foriegn 키 또는 여러 데이터

말, 나는 다음과 같이 두 가지 모델, CourseCourseDate 있습니다

class Course(models.Model): 
    name = model.CharField() 

class CourseDate(models.Model): 
    course = modelds.ForienKey(Course) 
    date = models.DateField() 

CourseDate이 어떤 과정이 진행됩니다 날짜입니다

.

나는 또한 다음과 같이 Course을 정의하고 CourseDate을 폐기 할 수 다음 dates 필드는 문자열로 표시되는 날짜를 포함

class Course(models.Model): 
    name = models.CharField() 
    dates = models.CharField() 

. 예를 들어 : 두 번째 솔루션은 "부정 행위"의 종류 인 경우

dates = '2016-10-1,2016-10-12,2016-10-30' 

나도 몰라. 그래서 어느 것이 더 낫습니까?

+2

http://stackoverflow.com/questions/3653462/is-storing-a-delimited-list-in-a-database-column-really- 그 나쁜/3653574 – e4c5

답변

2

나는 속임수에 관해서 모른다, 그러나 확실히 좋은 데이터베이스 디자인에 반대한다. 더 중요한 것은 해당 필드에서 거의 모든 종류의 유용한 쿼리를 수행하지 못하게하는 것입니다. 특정 날짜로부터 2 일 이내에 날짜가있는 모든 과정을 알고 싶다면 어떻게해야합니까? 솔루션 2에서는 거의 불가능하지만 솔루션 1에서는 간단합니다.

+0

아이디어를 가지고, 감사. –

관련 문제