2012-06-07 3 views
0

tableView에 콘텐츠를 제공하는 iOS 앱이 있습니다. 필자는 데이터베이스와 상호 작용하는 '좋아요/싫어함'기능을 추가했습니다 (Parse.com 사용). 누군가가 콘텐츠를 좋아하거나 싫어할 때마다 세부 정보가 파스 데이터베이스로 전송됩니다. 각 콘텐츠에 대해 '좋아요'와 '싫어요'보다 '좋아요'의 비율을 계산하여 표시하고 싶습니다. 이것은 꽤 간단한 수학이지만 데이터베이스 테이블을 디자인하는 최선의 방법과 tableView가 실제로 나타나기 전에 각 콘텐츠에 대해 '좋아요'비율을 계산하는 가장 효율적인 방법을 고민 할 수는 없습니다.초보 데이터베이스 문제

그렇듯이 이미 다른 테이블의 내용을 '좋아요/싫어요'표와 비교하여 사용자의 '좋아요/싫어요'버튼 상태를 복원하는 내 tableView의 viewDidLoad 루프가 있습니다 (이미 콘텐츠를 좋아하거나 싫어함).

처음에는 배열을 처음으로 viewDidLoad 루프로 만들 것을 생각했습니다. 그러나 각 조각 콘텐츠에 대해 whereKey: equalTo: 쿼리 유형을 사용하여 단순히 좋아요/싫어요 수를 찾는 데는 오래 걸립니다. 예상대로, cellForRowAtIndexPath에서도 매우 느립니다.

최악의 경우,이 계산을 서버 쪽에서 만들 수 있으며 '좋아요'비율을 끌어 올 수 있습니다. 그러나, 어떻게 든이 응용 프로그램에서 이것을 구현하고 싶습니다. 나는 완전한 초심자이므로이 모든 잘못을 저 지르게 될지도 모른다. 여기

내 데이터베이스 테이블의 기초 : enter image description here

편집 : 해당 콘텐츠의 조각 '과 같은'사용자의 비율을 계산하는 서버 측 프로그램을 빌드 관리했습니다. 내 응용 프로그램은 런타임에 데이터베이스에서이 백분율을 가져옵니다. 사용자가 무언가를 좋아할 때 변경 비율을보다 적절하게 만들기 위해 로컬로 업데이트 된 비율을 계산합니다. 여기서 문제는 사용자가 앱을 종료하고 다시 열 때 데이터가 다시로드된다는 것입니다. 서버 측 프로그램이 최근에 실행되지 않았다면 앱은 오래된 '좋아요'비율을 표시합니다 (가장 최근의 %는 아직 계산되지 않음). 나는이 문제를 해결하기 위해 볼 수있는이 개 솔루션은 다음과 같습니다

  1. 을 실행하여 서버 측 프로그램마다 1-3 분
  2. 포스트 사람이 내용이 좋아 데이터베이스에 더 많은 데이터 (이 매에 대한 추가 데이터베이스 쿼리를 포함하는 것 '처럼').

나는이 두 가지 옵션 모두 제가 달성하려는 것에 너무 비싸다고 생각합니다.

답변

0

나는 계산을 서버 측에 맡기고 앱에서 활용할 정보로 응답 할 것을 제안합니다. 이렇게하면 들어오는 결과를 처리하고 구문 분석하지 않아도됩니다.

서버보다 처리 능력이 더 높습니다.

+0

도움 주셔서 감사합니다. 내 편집을 참조하십시오. 추가 조언을 제공해 주시면 감사하겠습니다. – mnort9