2012-11-02 5 views
1

나는 약 20 가지 범주의 질문으로 sqlite 데이터베이스를 채우는 퀴즈 응용 프로그램을 가지고 있습니다. 누군가가 카테고리 1을 구매하면 이러한 질문이 데이터베이스에 추가되고 다른 사람들에게는 카테고리가 추가되지 않도록 앱 청구서를 구현하고 싶습니다. 내 질문 중 일부는 두 가지 범주에 속하므로 Category1 및 Category2를 가정 해 봅시다.앱 청구서에있는 Android SQLite

try { 
      for (int n = 1; n < sqlString.length; n++) { 

       db.execSQL("INSERT INTO " + DATABASE_TABLE + " VALUES (" 
         + sqlString[n] + ");"); 

      } 
      db.setTransactionSuccessful(); 
     } finally { 
      db.endTransaction(); 
     } 

이것은 현재 SQLite 클래스 onCreate 메소드에서 설정 한 것입니다. sqlString은 지금까지 500 가지 질문을 모두 포함하는 문자열 배열입니다.

카테고리를 다른 테이블에서 구입했는지 여부를 저장하려고합니다 (하지만이 방법에 대한 다른 제안이 있습니다). 나는이 데이터베이스를 읽는 클래스를 작성하여 각 카테고리를 구입했는지 여부에 관계없이 true 또는 false의 부울 값을 설정할 계획입니다. 이 구입 한 경우 그래서 등

boolean cat1 = CheckIfCategoryHasBeenBought(category1) 

그런 다음 내가 그것을 할 수있는 좋은 방법도 경우

boolean[] catChecker = {cat1, cat2, cat3, etc....} 
SQLite info = new SQLite(this); 
info.open(); 
info.addQs(catChecker) 
//this will pass the true and false boolean values for each method then 
//based on that I choose to implement or not 
info.close(); 

그러나 나도 몰라과 같은 방법을 구현합니다. 값을 이미 추가했는지 확인하는 방법을 모르겠습니다 (구매 한 다른 카테고리로 건너 뛴 결과). 커서가 값이 이미 추가되어 있는지 확인하는 것이 가장 좋다고 생각했지만 커서를 검색하려면 어떻게해야합니까?

나는이 달성 될 수 있다고 생각했습니다 방법은

1) 난 단지 구입 질문과 관련된 문자열 문자열 배열을 만드는 것입니다. 2) 위의 for 문 내에서 if 문을 작성합니다. 문자열이 구입 한 범주에 속하는지 여부를 확인합니다. 3) 구입하지 않은 모든 문자열에 "null"값을 지정하고 if 문을 실행 만 추가하십시오 sqlString [n]이 null이 아닌 경우 SQL.

어떻게 설정하는 것이 가장 좋을지 알고 계신가요?

답변

0

전체 데이터베이스 (모든 사람이 구입할 수있는 모든 질문 포함)로 시작한 다음 더 이상 적용 할 수없는 질문을 삭제 한 적이 있습니까?

+0

해킹이 훨씬 쉽기 때문에이 작업을 수행하고 싶지 않았습니다. 각 질문을 if 문에 적용한 모든 카테고리로 래핑하고, 질문을 구매하지 않은 경우 null로 설정했다. – AndroidPenguin

0

이렇게하는 데는 여러 가지 방법이 있으며, 1 가지 이상의 좋은 대답이있을 것이라고 생각합니다. 서버가 있다면 권한이 부여 된 데이터베이스/문자열/등의 목록을 반환하는 등의 작업을 수행 할 수 있습니다. 이를 사용하여 다른 테이블을 참조 할 수 있습니다. 또한 테이블을 만들거나 테이블이 다운로드 된 sharedpreferences를 사용할 수 있습니다. 목록은 계속됩니다.

서버 옵션은 보안 계층을 추가합니다. 저장된 테이블 인덱스는 해적 행위가 쉬울뿐만 아니라 구현이 더 쉬우 며 카테고리를 오프라인으로 사용할 수있는 기능을 제공합니다.

+0

서버를 사용할 수있는 능력이 없습니다./나는 아마도 테이블이나 공유 환경 설정을 고수하고 매주 또는 수천 가지의 라이센스 검사를 실행합니다. 질문의 나머지 부분에 대한 아이디어? – AndroidPenguin