안녕하세요.
DB를 사용해서 어플을 만들고 있습니다.
리스트뷰를 통해서 DB값이 뿌려지고
리스트뷰에 뿌려진 아이템을 선택하면 리스트뷰의 포지션값을 이용하여
DB의 ID값을 불러와 사용했습니다.
DB값
리스트뷰
이런식입니다.
그런데 DB의 제거는 ArrayList와 처럼 중간의 값이 제거되면 앞의 값을 대체하는 것이 아니거
DB의 제거된 공간은 빈공간이 된다는것이 문제입니다.
DB 1 / 2 / 3 / 4
List 1 / 2 / 3 / 4
3이라는 값이 제거되면
DB 1 / 2 / 4
List 1 / 2 / 3
이런시으로 되서 ListView에 뜨는 값이 꼬이게 됩니다.
------------------------------------------해결방법?--------------------------------------------
그래서 해결방법으로 생각한것이 ... DB값이 제거될때마다 DB를 처음부터 다시 설정하는 것 .
(이건 생각만했는데 비효율적일것 같습니다.)
그리고 다른 방법은 DB에 new_id 값을 문들어줘서 _id와 같은 갑을 주다가 값이 제거되면
다음 new_id 값을 -1해줘서 마춰주는 방법입니다. (해보질않아서 모르겠지만 어려울거같네요 ;;; )
_id |
new_id |
값 |
1 |
1 |
A |
2 |
2 |
B |
3 |
3 |
C |
4 |
4 |
D |
C의 값이 제거되면
_id |
new_id |
값 |
1 |
1 |
A |
2 |
2 |
B |
4 |
4 |
D
|
수정
_id |
new_id |
값 |
1 |
1 |
A |
2 |
2 |
B |
4 |
3 |
D
|
제거된 3의 다음 new_id 값 부터 -1 해주는 DB 업데이트를 해주는 것입니다.
참 설명이 복잡하게된거 같은데 ...
보통 리스트뷰를 통해 DB뿌리고 리스트뷰를 통해서 DB값과 리스트뷰값을 지우는건 어떤방식인이 알고 싶습니다.
조언 부탁드립니다. ㅠㅠ