2010-07-09 4 views
1

Google Appengine을 사용하여 즐겨 찾기 목록을 저장하고 Facebook UserID를 Bing의 하나 이상의 ID에 연결합니다. 항목을 즐겨 사용하는 사용자 수와 항목이 즐겨 찾기에 추가 된 횟수를 반환하는 함수 호출이 필요합니다.Google AppEngine의 다 대다 관계 - 효율적입니까?

효율성을 위해이 관계를 두 테이블로 해결해야합니까? Facebook ID 및 Bing ID에 대한 열이있는 표가있는 경우 위의 두 기능 모두에서 선택 쿼리를 쉽게 사용할 수 있지만 각 쿼리에서 각 행을 검색해야합니다. 대안은 각 Facebook 사용자의 즐겨 찾기에 대해 하나씩, 그리고 Bing 항목의 즐겨 찾기 사용자별로 하나씩 두 개의 테이블을 가지며 트랜잭션을 사용하여 테이블을 동기화 상태로 유지하는 것입니다. 두 테이블 옵션은 데이터베이스에서 JSON 또는 CSV를 사용하여 한 행만 가져올 필요가 있고 API에 대해 약간의 조작이 필요하다는 이점이 있습니다.

어떤 옵션이 효율성 측면에서 우수하고 비용을 최소화 할 수 있습니까?

감사합니다, 매트

답변

0

나는이 같은 질문에 하드 및 빠른 응답이 생각하지 않습니다. "이 최적화 가치가 있습니까?"와 같이 항상 많은 변수에 의존합니다. 최적화 부족으로 시작해야 할 문제가 있습니까? 얼마나 큰 문제입니까? 이점과 비교하여 더 복잡한 최적화 된 구현의 추가 시간과 노력 및 버그 위험 측면에서 비용은 얼마입니까? 나중에 새 스키마로 데이터를 마이그레이션하는 것과 같이 최적화를 구현하는 데 추가되는 비용은 얼마입니까?

+0

그래, 내가 그것에 대해 생각 해왔다. 두 테이블에서 수행하는 것이 더 효율적 일지 모르지만 하나의 테이블을 유지하는 것이 더 간단하며 디버깅 및 마이그레이션과 같은 작업은 더 쉽습니다. 효율성이 문제라면 나중에 두 테이블을 쉽게 생성 할 수 있습니다. 감사 :) – Matt