다형성 관계가있는 이유는 무엇입니까? 데이터베이스 테이블이 정규화되지 않은 경우이 다형성 관계가 사용되는 이유는 무엇입니까? 이것은 데이터베이스의 데이터를 적게 유지하도록 설계된 것입니까? 2 일 동안 연구 중이지만 일관된 답을 찾지 못했습니다. 도와 줄수있으세요?다형성 관계가있는 이유는 무엇입니까?
-1
A
답변
0
관계가 여러 모델에 동시에 적용될 수있는 경우 다민족 관계가 사용됩니다.
의 당신이 같은 관계 Teacher
및 Student
에 대한 모든 관리 데이터를 보유하고 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
에 두 개의 필드를 추가합니다. 그리고 어떤 부모에게 적용되는지를 아는 문제를 해결합니다.
는
(의 동급를 알고 whithout 정말 테이블로 데이터베이스에 존재하지만 부모에 이르게 나던Profileable
을 가정 해 봅시다)