2017-12-03 8 views
-1

다형성 관계가있는 이유는 무엇입니까? 데이터베이스 테이블이 정규화되지 않은 경우이 다형성 관계가 사용되는 이유는 무엇입니까? 이것은 데이터베이스의 데이터를 적게 유지하도록 설계된 것입니까? 2 일 동안 연구 중이지만 일관된 답을 찾지 못했습니다. 도와 줄수있으세요?다형성 관계가있는 이유는 무엇입니까?

답변

0

관계가 여러 모델에 동시에 적용될 수있는 경우 다민족 관계가 사용됩니다.

의 당신이 같은 관계 TeacherStudent

에 대한 모든 관리 데이터를 보유하고 Profile라는 모델이 있다고 가정 해 봅시다 :

:

Student has_one :profile 
Teacher has_one :profile 
Profile belongs_to :student 
Profile belongs_to :teacher 

이제 Profile의 첫 번째 레코드를 선택 말할 수를

@p = Profile.first 

그리고이 레코드의 부모를 얻고 싶습니다. Well t 부모의 클래스와 부모의 id : 당신이 @p.student 또는

@p.teacher 그런 다음 다형성 연관이 유용 할 수 있습니다 할 필요가 있는지 알 수 없기 때문에 자신의 문제, 그것은 Profile에 두 개의 필드를 추가합니다. 그리고 어떤 부모에게 적용되는지를 아는 문제를 해결합니다.

당신은 단지 중간 abtstract 모델을 호출해야

(의 동급를 알고 whithout 정말 테이블로 데이터베이스에 존재하지만 부모에 이르게 나던 Profileable을 가정 해 봅시다)