안드로이드 개발 질문/답변
(글 수 40,700)
문제풀이 앱을 개발하고있는 초보 대학생입니다.
DB를 이용하여 문제를 불러와서 문제를 풀어 사용자계정 DB로 저장을 하는 원리로 프로그래밍을 하고있습니다.
그런데 100개의 문제를 풀지 않고 나갈 시에는 저장된 답안을 초기화 해야 하는데
사용자계정 테이블에 Delete 명령을 주면은 예전에 풀었던 테이블에있는 레코드까지 전부 삭제되거나
그 상태로 냅두면 1번문제로 가지않고 풀다가 나간 상태의 문제부터 시작되는 에로사항을 겪고있습니다.
예를들어 QUIZBANK 테이블이 문제은행DB로써 호출하여 문제풀기를 시작할때
문제를 출력하게 되고 HISTORY 테이블에서 문제를 1개씩 풀때마다 HISTORY 테이블에 답이 저장됩니다.
물론 문제를 풀때마다 HISTORY테이블은 testnum 이라는 컬럼으로 분류하여 저장을 시키고 있는데요.
문제를 전부 풀지 않고 나가면 테이블을 초기화해야 하는데 HISTORY 테이블 자체에 전에 100문제를 다 풀고
저장된 내역까지 삭제되는 에로사항이 발생하고 있습니다.
한가지 더 질문할 내용은
결과 점수를 나타내기위해서 쿼리문을 이용해 계산을 하려하는데 실패하고있습니다.
두 테이블을 연관지어 QUIZBANK 의 실질적인 정답DB와 HISTORY의 사용자답안DB 컬럼간의
SQL 조인명령어를 썼을때는 출력이 되지만 실제 APP상에서 계산값을 나타내기 위해서 하는 방법에 대해 잘 모르겠습니다.
이 두가지 내용에 대해 문제점이나 해결방법을 알려주시면 감사하겠습니다 ( _ _)
사용자의 문제풀이 정보를 저장용 테이블을 추가하세요.
사용자문제지 테이블
_id, 사용자아이디, 문제지번호, 문제수, 날짜시간, 정답수, 응답수 등등
문제풀이상세정보 (님이 이미 가지고 있는 테이블) 에 사용자문제지테이블과 연결되는 키값필드를 추각하세요.
사용자문제지 _id
사용자가 문제를 풀기 시작할 때 사용자문제지테이블에 레코드를 하나 인서트 하시면 _id거 라턴되겠조. 이제 문제풀이상세정보 테이블에 레코드를 삽입하실 때 사용자문제지_id에 이 값을 집어넣으면 나중에 어떤 문제를 사용자가 풀었는지 알 수 있을 겁니다.
만약 사용자가 문제 푸는 도중 나갔다 들어오면 사용자문제지테이블에서 응답수가 문제수보다 작은 문제지를 찾아서 문제풀이상세정보 테이블에서 같은 _id를 가진 레코드를 삭제해 주시면 될 것 같습니다.