2014-07-24 4 views
0

애플 리케이션 엔진이있는 작은 축구 리그를위한 약간의 백엔드 애플리케이션을 만들고 싶습니다. 전통적인 SQL 데이터베이스 대신 datastore와 objectify를 사용하는 것을 고려합니다.Soccer League Table with objectify

성냥갑과 리그 테이블을 표시하고 싶습니다. 나는 또한 ceratin matchdays에 대한 리그 테이블 순위를 표시 할 수 있기를 원합니다.

예 : 현재 일치하는 날짜가 현재 시즌의 6 번째 일치라고 가정합니다. 네 번째 matchdays에 대한 리그 테이블 순위를 표시 할 수 있기를 원합니다. (matchday + 2. matchday + 3. matchday + 4. matchday의 포인트 합계)

어떻게하면 좋을까요? 데이터 저장소를 사용하고 객체화하는 앱 엔진에 있습니까? 리그 테이블에 대한 쿼리는 어떻게 생겼습니까?

또는 SQL을 사용하면 SQL 문에서 SUM()을 수행 할 수 있기 때문에 기존 SQL 데이터베이스를 사용해야하는 좋은 예가 될까요? (아마도 캐시) 비행

  • 사전 계산 및 저장 그것은 이후 귀하의 경우 더 나은 어떤 말을하기 어렵다
    • 계산 :

    답변

    0

    당신은 일반적으로 두 가지 선택이있다 데이터 및 쿼리 볼륨에 따라 다릅니다. GAE에서 작업하는 것은 특히 과거 데이터가 변경되지 않은 경우 개발자를 사전 계산에 편향시키는 경향이 있습니다. 예를 들어, 매일 밤마다 과거 데이터를 롤업하십시오. 이제 검색어가 빠릅니다.

    +0

    "on the fly"는 전통적인 SQL 데이터베이스에서 훨씬 쉬워 보입니다. 사전 계산 및 저장 또한 첫 번째 접근 이었지만 또 다른 최상의 권장 사항이있을 것이라고 생각했습니다. 사전 계산 : 예를 들어 리그의 최고 득점자 및 리그의 최고 득점자에게 선수 통계를 추가하고 싶습니다. 리그의 최고 득점 기록을 저장하고 각 팀의 최고 득점 기록을 저장해야합니다. 성냥갑에 실시간으로 다시 계산해야 할 수도 있습니다. 그래서 SQL + 메모리 캐싱이 내 리그 프로젝트에서 더 나을 것이라고 생각합니다. 어떻게 생각하십니까? – sockeqwe

    +0

    이것은 SQL 대 데이터 저장소에 관한 것이 아닙니다. 그것은 사전 계산과 즉석에서의 계산에 관한 것입니다. SQL과 Datastore는 두 가지 옵션을 모두 제공합니다. 결정하고 구현하는 것은 당신에게 달려 있습니다. 앱이 작다고 생각하면 너무 많은 시간을 낭비하지 않아도됩니다. 하나를 선택하고 그것을해라. 당신은 언제나 리팩토링 할 수 있습니다. –

    +0

    SQL은 큰 데이터 볼륨으로 확장되지 않는 GROUP BY를 포함하여 많은 것을 쉽게 만듭니다. 귀하의 경우에는 데이터 양이 적기 때문에 문제가되지 않지만 GAE 데이터 저장소는 Google 규모로 확장되지 않을 수있는 활동을 방해하지 않으려 고합니다. 상반 관계가 있습니다. 작은 데이터 볼륨과 확고하게 구조화 된 데이터가있는 경우 RDBMS에는 아무런 문제가 없습니다. – stickfigure