Activity 진입할 때 두개의 테이블(지불, 충전) 정보를 합쳐서 보여주고 싶습니다.
Activity 진입할 때 마다 DB의 갱신을 체크하여 지불 및 충전 내용을 업데이트하고
시간 날짜 내림차순으로 정렬하고 싶은데요.
지불 테이블, 충전테이블 의 컬럼은 동일하게 (_id, 시간, 날짜, 금액) 이구요.
합쳐서 보여줄 때는 충전인지 지불인지 구분할 수 있는 bool 타입의 컬럼이 하나 더 추가 되어야 합니다.
그래서 제가 View를 생성하여 두 테이블을 "UNION ALL" 하였더니..
문제가 CursorAdapter를 사용할 때 발생 하더라구요.
CursorAdapter에서는 _id값을 가지고 Adapter를 만드는데
UNION ALL을 하다 보니 _id값이 유니크하지 않아서 Exception이 뜹니다.
그래서 View를 다 Collection에 옮겨 담고 이걸로 ArrayAdapter를 만들었더니 진입할때 시간이 너무 오래 소모됩니다..ㅠ
아래는 개략적인 테이블 구조입니다.
지불테이블
_id |
날짜 |
시간 |
금액 |
1 |
10/10/10 |
1:1:1 |
1000 |
2 |
10/11/11 |
2:2:2 |
2000 |
3 |
10/12/12 |
3:3:3 |
3000 |
충전테이블
_id |
날짜 |
시간 |
금액 |
1 |
11/11/11 |
4:4:4 |
4000 |
2 |
11/12/12 |
5:5:5 |
5000 |
3 |
11/10/10 |
6:6:6 |
6000 |
4 |
11/09/09 |
7:7:7 |
7000 |
View(충전+지불테이블)
_id |
날짜 |
시간 |
금액 충전 |
1 |
10/10/10 |
1:1:1 |
1000 0 |
1 |
11/11/11 |
4:4:4 |
4000 1 |
2 |
10/11/11 |
2:2:2 |
2000 0 |
2 |
11/12/12 |
5:5:5 |
5000 1 |
3 |
10/12/12 |
3:3:3 |
3000 0 |
3 |
11/10/10 |
6:6:6 |
6000 1 |
4 |
11/09/09 |
7:7:7 |
7000 1 |
질문 요약드립니다.
컬럼이 같은 두개의 테이블로 View를 만들 때 "_id auto increment" 와 같은 효과를 줄수 있는 컬럼을 생성 할 수 있나요??
만약 힘들다면 다른 방안이 있을까요?