2017-12-09 3 views
-1

내가이 모양이 개 모델을 가지고 말할 수 있습니다 : Django - 외장형 키를 넣을 모델을 어떻게 결정합니까?

class Album(models.Model): 
    pub_date = models.DateTimeField(auto_now_add=True) 
    title = models.CharField(max_length=250, blank=False, unique_for_date="pub_date") 


class Track(models.Model): 
    title = models.CharField(max_length=250, blank=False, unique_for_date="pub_date") 
    album = models.ForeignKey(Album) 

Album 모델에 many-to-many을 가진 대 Track 모델에 ForeignKey (일대 다) 관계를 퍼팅의 차이점은 무엇입니까

?

어떻게 그런 결정을 내릴 수 있습니까?

답변

1

이들은 완전히 다른 일을합니다.

당신이 말했듯이, ForeignKey는 일대 다 관계입니다. 트랙에 붙이면 많은 트랙이 하나의 앨범에 속하게됩니다 (즉, 하나의 앨범에는 많은 트랙이 있음). 앨범에 올려 놓으면 많은 앨범이 하나의 트랙에 속해 있다는 것을 의미합니다. 이는 분명 옳지 않습니다.

인 상황은 ManyToManyField를 사용할 때입니다. 거기에, 양쪽은 "많은", 그래서 어느 쪽이 분야를에 두는 선택은 순전히 의미 론적 것이다.

편집 다시 말하지만, 이것들은 다른 효과가 있습니다. 다 대다는 양면이 여러 항목을 가질 수 있음을 의미합니다. 앨범에 많은 트랙이있을 수 있습니다. 트랙은 많은 앨범에 속할 수 있습니다.

+0

Dang, 내가 생각하던 것 같아. ManyToMany 대 oneToMany였습니다. 질문을 수정하겠습니다. – scottc11