08/02/2019 - No Comments!

관계대수 조인 예제

이 문서에서는 Peewee가 모델 간의 관계를 처리하는 방법을 다룹니다. 다음 예제에서는 사용자 및 ActivityLog 간에 명시적 외래 키가 없지만 ActivityLog.object_id 필드와 User.id 간에 암시적인 관계가 있습니다. 특정 필드에 참여하는 대신 표현식을 사용하여 조인합니다. ArcGIS를 사용하면 한 테이블의 레코드를 키라고 하는 공통 필드를 통해 다른 테이블의 레코드와 연결할 수 있습니다. 맵에서 테이블을 일시적으로 조인하거나 연결하거나 지리적 데이터베이스에서 더 영구적인 연결을 유지하는 관계 클래스를 만드는 등 여러 가지 방법으로 이러한 연결을 만들 수 있습니다. 예를 들어 구획 ID 필드를 공유하므로 구획 소유권 정보를 구획 도면층과 연결할 수 있습니다. 여전히 트윗당 리트윗의 수는 많지만 3+ 만 범위에 는 포함되지 않습니다: 이전 예제에서는 트위터 데이터인 트윗과 twitter_profiles에만 가입했습니다. 다시 당파를 얻고 원래 트윗으로 평균 리트윗과 즐겨 찾기로 정당을 나열할 수 있습니다. social_accounts에는 트윗에 연결하기 위한 twitter_screen_name 필드가 있으므로 twitter_profiles 테이블을 무시할 수 있습니다. 예를 들어, 클래스에 참여한 보기를 가진 학생 탐색은 스키마가 아래 예제와 같이 디자인된 경우 many_to_many일 수 있습니다. 실제로 SQL 데이터베이스 디자인에서는 많은 관계가 방지되므로 대부분의 모델은 many_to_many가 필요하지 않습니다. 조인 테이블과 달리 관련 테이블은 단순히 두 테이블 간의 관계를 정의합니다.

연관된 데이터는 조인과 마찬가지로 레이어의 특성 테이블에 추가되지 않습니다. 대신 레이어의 특성으로 작업할 때 관련 데이터에 액세스할 수 있습니다. 다음 예제에서는 여러 쿼리를 실행 합니다. 실행 중인 쿼리 수를 잘 모르는 경우 콘솔에 모든 쿼리를 기록하는 다음 코드를 추가할 수 있습니다. 트윗 사용자에게 트윗, 우리는 Tweet.user 외국 키에 가입했다. ModelAlias를 사용하는 조인을 수행할 때on 키워드 인수를 사용하여 조인 조건을 지정해야 합니다. 이 경우 상위 범주와 범주에 합류합니다. 일반적으로 두 테이블에서 찾을 수 있는 필드 값을 기반으로 데이터 테이블을 레이어에 조인합니다. 필드 이름이 같을 필요는 없지만 데이터 형식은 같아야 합니다. 숫자, 문자열에 문자열 등을 조인합니다. ArcMap에서 레이어를 마우스 오른쪽 단추로 클릭하여 액세스하는 데이터 조인 대화 상자 또는 조인 추가 도구를 사용하여 조인을 수행할 수 있습니다.

prefetch()를 사용하여 임의의 수의 테이블을 쿼리할 수 있습니다. API 설명서에서 자세한 예제를 확인하십시오. PostgreSQL은 관계형 데이터베이스로, 다른 테이블과의 관계(연결)를 가질 수 있는 데이터를 테이블에 저장합니다. 관계는 한 테이블에서 다른 테이블의 기본 키에 외래 키를 연결하여 각 테이블에 정의됩니다. Peewee는 장고와 마찬가지로 많은 관계를 나타내는 필드를 제공합니다. 이 기능은 사용자의 많은 요청으로 인해 추가되었지만 접합 테이블과 숨겨진 조인이있는 필드의 아이디어를 결합하기 때문에 사용하지 않는 것이 좋습니다. 그것은 편리한 접근을 제공하기 위해 단지 불쾌한 해킹입니다. 위의 루프에 큰 문제가 있습니다: 그것은 tweet.user 외국 키를 조회 하는 모든 짹짹에 대 한 추가 쿼리를 실행.

우리의 작은 테이블에 대 한 성능 페널티는 분명 하지 않습니다., 하지만 우리는 지연 증가 행의 수를 찾을 것 이다. 그것은 우리의 작은 예제에 대해서도 이미 지저분해지고 실제 회사 구현에는 현실적이지 않습니다. 세상(및 데이터)은 관계와 더 잘 작동합니다.

Published by: jeshurun

Comments are closed.