2011-04-13 4 views
0

Django Intermediary Models의 목적을 이해하려고합니다.Django의 중개 모델 이해

개념적으로 UML 클래스 다이어그램에서는 과 같습니다. 내가 알아야 할 두 가지 사이에 근본적인 차이점이 있습니까?

명백한 유사성에도 불구하고 중개 모델의 목적을 설명하는 몇 가지 리소스를 찾았지만 어느 누구도 "연관성 클래스"에 대한 언급을하지 않아 다소 의심 스럽습니다.

답변

0

당신은 장고 문헌에서 UML 다이어그램 어떤 비교를 찾을 가능성이 아니에요 - UML 모델링은 내 경험에서, 정말 파이썬 세계에서 큰 일이 아니다.

그러나 다이어그램을 보면 개념이 매우 비슷해 보입니다. ORM은 관계형 개념을 객체에 매핑한다는 것을 잊지 마십시오.이 경우, through 테이블은 항상 다 대다 관계로 생성 된 중개 테이블을 매핑합니다. 유일한 차이점은 링크의 등록 날짜와 같은 추가 정보를 해당 관계에 추가하려는 경우 수동으로 지정해야한다는 것입니다. 추가 필드가 필요하지 않은 경우 중개 모델을 지정할 필요는 없지만 테이블은 여전히 ​​존재하며 M2M 관계의 각 끝에 대한 외래 키만 포함됩니다.

+0

그래, 내가 본 대부분의 물건들은 UML이 파이썬 커뮤니티에서별로 사용되지 않는다는 것을 뒷받침 해준다. 고맙습니다. –

0

다 대 다 관계에 대한 추가 데이터를 저장하는 데 사용됩니다. 나는 이것이 신성 모독이라고 확신하지만, 가장 좋은 예는 환자와 의사 간의 연관성을 사용하는 Ruby on Rails guides에서 온 것이라고 생각합니다. 의사는 약속을 통해 많은 환자가 있습니다. 환자에게는 약속을 통해 많은 의사가 있습니다. 약속에는 날짜와 시간도 있기 때문에 직접적으로이 관계를 모델링 할 수는 없습니다.

저는 개념적으로 당신이 생각하기에, 그들은 UML의 연관 클래스와 비슷한 목적을 가지고 있다고 생각합니다.

0

이것은 관계형 데이터베이스에서 구현되는 many-to-many 관계입니다. 이것은 관계형 데이터베이스 디자인의 기본적인 부분입니다. 따라서 ORM을 올바르게 사용하기 위해서는 데이터베이스 작동 방식을 알아야하기 때문에 데이터베이스 디자인 원칙을 먼저 배우는 것이 좋습니다.

wikipedia on Many-to-many