1

대 부모 - 엔티티 관계를 이용 사이의 차이에 대한 초보자의 설명이 필요합니다. 그들이 거래에 필요한 사이에 다른 관계의구글의 앱 엔진의 문서에서이 문에 관해서 ReferenceProperty

"만 사용 엔티티 그룹 엔티티는 조회에서 사용할 수있는 ReferenceProperty 특성 및 키 값을 사용합니다. "

누군가가 동일한 팀의 구성원 인 모든 플레이어를 얻는 쿼리에 대한 예를 제시 할 수 있습니까? 또한 각 팀의이 선수 세트는 결코 변하지 않으나, 유니폼, 승, 손실 및 급여와 같은 팀의 특성은 각 플레이어를 변화시키고 효과를 발휘한다고 말합니다. 이런 경우에는 '거래가 있거나 없거나 '관련.

특정 팀의 모든 선수를 묻는 쿼리를 작성하는 방법은 무엇입니까?

답변

1

트랜잭션은 데이터 구성 방법과 관련이 없으며 특정 데이터베이스 작업입니다. 트랜잭션 내에서 여러 개의 읽기 및 쓰기 작업을 수행 할 수 있으며 모든 작업이 성공 또는 실패합니다. 한계는 영향을받는 모든 엔티티가 동일한 그룹에 있어야한다는 것입니다. 거래를 사용 중이라면 팀 데이터 조회가 거래를하지 않는다는 것을 알 것입니다. 당신의 선수들이 팀을 지정하는 참조 속성을 사용하는 경우

, 당신은 WHERE team=KEY('Team', <id>), <id> 팀 엔티티의 ID 인 상태 GQL에 그 쿼리 것입니다. 또한,이 작업을 수행 할 수 있습니다

for player in team.player_set: 
    # iterating over the players in the team... 

을 플레이어가 어떤 팀 종류에 대한 참조 속성이있는 경우, 팀은 자동적으로 당신이 반복 할 수있는이 player_set 수집을 (물론, 실제로는 쿼리) 얻을 수 있습니다. "백 - 레퍼런스 (back-reference)"라고 부릅니다.

+0

그래서 우리에게 '트랜잭션'이라고 부르면 어떤 종류의 쓰기가 포함됩니다. 팀의 일부 하위 집합에 대한 속성 값의 일일 업데이트 ('거래')를 계획하고이 변경 사항을 해당 플레이어에게 전달하려는 경우에는 어떻게합니까? 트랜잭션, 나는 팀 엔티티를 플레이어 엔티티의 부모 엔티티로 모델링하는 것이 우리 팀 멤버쉽에 연결하려는 플레이어 속성에 대해 ReferenceProperty를 사용하는 것과 어떻게 크게 다른지 이해하지 못합니다. – newguy

관련 문제