문제

나는 비 관계 (외래 키 없음)에 가입 해야하는 2 개의 기존 모델을 가지고 있습니다.이들은 다른 개발자들이 저에게 수정할 수 없습니다.

여기에 대한 간단한 설명이 있습니다 :

모델 프로세스

  • 필드 파일 이름
  • 필드 경로
  • 분야 무게
  • 필드 바

    모델 서비스

    • 필드 파일 이름
    • 필드 경로
    • 필드 servicename
    • 필드 foo

      파일 이름과 경로 열에이 두 모델의 모든 인스턴스에 가입해야합니다.이 조인이 발생하기 전에 각각의 객체에 적용하려면 기존 필터가 있습니다.

      예 :

      a= process.Objects.Filter (quicking= 231)

      b= service.objects.filter (foo= 'abc')

      result= a.filter (filename= b.filename, path= b.path)

도움이 되었습니까?

해결책

이 빨아 지지만 최상의 베팅은 한 유형의 모든 모델을 반복하고 다른 유형에 대해 조인 된 모델을 가져 오려면 쿼리를 발행하는 것입니다.

다른 대안은 원시 SQL 쿼리를 실행하여 이러한 조인을 수행하고 각 모델 객체에 대한 ID를 검색 한 다음 해당 조인 된 쌍을 검색하는 것입니다.런타임에보다 효율적이지만 스키마가 진화하면 수동으로 유지해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top