2012-04-27 1 views
1

Google 애널리틱스 엔진의 데이터 저장소에서 작업 중이며 이벤트 관리를위한 앱을 개발 중입니다. 나는 2 개체가 : 사용자가 하나 이상의 이벤트를 따를 수앱 엔진 데이터 저장소, 쿼리가 fk 속성으로 정렬되었습니다.

- user 
- event 
    - attribute eventDate 

를, 그래서 링크 테이블을 만들

- UserEvent 
    -User key 
    -Event key 

내 문제는 내가 이벤트의 목록을하고 싶은 것입니다 eventDate에 의해 정렬 된 사용자가 따라옵니다.

어떻게하면됩니까?

나는 3 해결책을 찾았지만, UserEvent에 (I에 하나 occurency을 가지고와 나는 단지 하나를 주문하는 모든 이벤트에 ...

  1. 쿼리 누구나 좋아하고 반복하고 선택하지 아마 내가 이벤트 만이있을 것이다, 그러나 사용자는 몇 가지를 수행하기 때문에 좋아하지 않는다 ..)
  2. userKey에 의해 필터링 모든 사용자 이벤트 (에 쿼리)와 정렬 된 목록 에 결과 를 넣어 (에 모든 이벤트를로드해야하기 때문에 좋아하지 않습니다. 페이지 매김없이 한 번)
  3. 테이블에 추가 속성 EVENTDATE (내가 싫어하는을 UserEvent에 때문에 이벤트는 내가 3000 업데이 트를해야 할 3000 추종자 ...)

감사가있는 경우 너 알레 산드로

+0

또는 주어진 사용자에 대해 항상 이벤트를 쿼리하는 경우 사용자 엔터티에 이벤트의 ListProperty를 저장하는 것이 좋습니다. – proppy

+0

음, 맞습니다. 단일 사용자를 쿼리합니다. 그러나 나는 모든 후속 이벤트를 사용자에게 넣으면 사용자 엔터티가 너무 커질 수 있습니다. – Alessandro

+0

은 정답을 추가했습니다 – proppy

답변

0

정말로 그런 비정규 화를 좋아하지 않는다면, CloudSQL 사용을 고려해보십시오.

+0

나는 비정규 화를 좋아하지만, 나는 항상 관계형 데이터베이스를 사용하여 작업합니다 ... 저는 응용 프로그램을 만드는 초기 단계에 있습니다. 따라서 DB 구조도 변경할 수 있습니다. 내 솔루션에 대해 어떻게 생각하십니까? 더 나은 것이있을 것입니까? – Alessandro

+0

당신에게 '더 나은'무엇이 있습니까? 관계형 또는 비 관계형간에 –

+0

? 나도 몰라, 나는 항상 관계형을 사용하지만, 나는 비 관계형에 대해 궁금해. (그리고 많은 톤의 데이터가 비 관계형을 사용한다면, 나는 그것이 훌륭하다고 생각한다.). 그건 그렇고, 난 애플 리케이션 엔진에서 개발하고있어, 그래서 choise가 없다고 생각 ... 솔루션에 더 나은 하나 quering에서 덜 광대 한 의미하고, 더 견고한 ... – Alessandro

0

주어진 사용자에 대해 항상 이벤트를 쿼리하는 경우 사용자 엔터티에 이벤트의 ListProperty를 저장하는 것이 좋습니다. 리스트가 5000 개 항목을 제한 END_LINK하면 관심있는 색인 경우

- user 
    - attribute eventList []key 

당신은 엔티티 (현재 1메가바이트)의 최대 크기에 의해 제한됩니다.

+0

5000 엔티티 많이 있습니다. .. 내 앱에 5000 개의 이벤트를 따르는 사용자가 있으면 매우 기쁠 것입니다 .--) 그것에 대해 생각할 것입니다 ... 감사합니다. – Alessandro

관련 문제