ScoreMore: 야구 ORM 및 뷰 만들기

 

야구 시즌을 준비하세요, ScoreMore 야구 는 최근 모든 주요 모바일 플랫폼에 앱을 출시하여 큰 성공을 거두었습니다. 이 앱의 주요 차별화 요소 중 하나는 다음과 같습니다. 카우치베이스 에서 논의된 카우치베이스 모바일 블로그를 통한 ScoreMore. 이제 이 블로그에서 앱이 객체 매퍼를 설계하고 뷰를 가져오는 방법을 살펴보겠습니다. 

ScoreMore의 경우 객체 관계 맵의 설계는 다음에 대한 특정 속성을 유지하는 것입니다. "type" 의 종류를 식별하기 위해 "object" 문서입니다. 야구에서 팀은 다양한 역할을 맡은 멤버로 구성됩니다. 아래 예시에서는 "유형":"코치" 는 게임 중 코치에게 필요한 모든 정보가 담긴 문서입니다. 다른 역할은 각각의 "type"

참고: 해시 및 솔트는 비밀번호 저장용이며, _id 및 _rev는 Couchbase에서 자동으로 생성되므로 표시되지 않습니다. 사람이 읽을 수 있는 _id 버전은 향후 예제에서 "coach_1"과 같이 사용될 것입니다.

일부 문서에서는 구조의 최하위 노드를 소유 문서에서 배열로 롤업할 수 있습니다. 대표적인 예가 연락처의 모든 주소를 배열로 롤업하는 것입니다. ScoreMore Baseball에서는 모든 타자의 "hit" 은 해당 기록이 발생한 게임의 배열로 롤업됩니다. 마찬가지로 팀의 경우 각 시즌의 승패 기록이 팀에 대한 배열로 롤업됩니다. 이렇게 하면 속성 간의 구분과 관계가 명확하게 정의됩니다.

 

스코어 모어 베이스볼 팀은 또한 야구 경기 결과를 조회수, 여기서 각 보기는 하나의 문서만 반환합니다. "type". 보기를 사용하면 첫 번째 검사는 "if절" 문으로 특정 "type"에 대한 수표로 지정하거나 "type" 또는 해당 문서 유형에 고유한 필드와 비교합니다. 아래 예는 플레이어가 지금까지 수행한 모든 타격의 위치를 보여주는 스프레이 차트 보기입니다.

아래 코드는 먼저 문서(이 경우 게임)에 홈 팀 또는 원정 팀에 대한 히트 배열이 포함되어 있는지 확인하면서 동기화 게이트웨이에서 생성된 문서는 생략합니다. 그런 다음 모든 히트를 반복하고 플레이어의 검색 매개변수( 'playerid')로 지정된 시즌( 'yearid') 히트와 일치하면 'hit' 가 결과 집합에 추가됩니다. 각 히트 위치에는 'x' 그리고 'y' 세트뿐만 아니라 'type'를 눌러 타구가 플라이볼인지, 라인 드라이브인지, 그라운드볼인지를 표시합니다.

 

예를 들어, 아래 스프레이 차트는 2015시즌 'player_1'의 모든 안타 위치를 (키=["player_1", 2015]) 빨간색 점은 플라이 볼, 흰색 점은 라인 드라이브, 노란색 점은 땅볼로 표시한 것입니다.

 

 

 

 

마지막으로 클라이언트 측에서는 스코어모어는 사용 가능한 다양한 문서 유형의 객체 표현인 자바스크립트 구조를 사용했습니다: 코치, 선수, 팀, 게임 등입니다. 이러한 각 객체 구조의 생성자는 뷰에서 반환된 결과를 가져와 객체 프로퍼티에 매핑합니다. 다른 방향(앱에서 데이터베이스에 저장)으로 이동하면 JSON.stringify를 사용하여 객체 구조에서 Couchbase가 POST 작업에 대해 예상하는 JSON 형식으로 변환합니다.

 

방법 알아보기 카우치베이스 모바일 스코어모어 팀에게 야구장 밖의 야구장에서 그것을 치는 데 필요한 기술 도구를 제공했습니다. 카우치베이스의 커피: 카우치베이스 모바일 블로그를 통한 ScoreMore 지금 바로 사용 가능한 앱을 다운로드하세요. Android, iOSBlackBerry.

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 윌리엄 호앙, 모바일 개발자 옹호자, Couchbase

윌리엄은 카우치베이스의 모바일 엔지니어링/개발자 경험 팀의 개발자 옹호자였습니다. 커피와 코드에 대한 그의 사랑은 오프라인 대면 경험을 즐기면서 모바일의 세계로 넘어왔습니다. 그 전에는 Twitter, BlackBerry, Microsoft에서 개발자 관계 팀에서 일했으며, Research In Motion에서 소프트웨어 임베디드 GPS 엔지니어로 근무하기도 했습니다. 윌리엄은 맥길 대학교에서 전기 소프트웨어 공학을 전공했습니다.

댓글 하나

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.