2012-11-10 6 views
0

저는 Android 개발에 익숙하지 않습니다. 사용자가 해시 태그를 포함시킨 다음 해시 태그로 저장된 노트를 탐색 할 수있는 메모/노트 작성 앱을 개발 중입니다.SQLite에 arraylist의 arraylist를 저장합니다.

나는 이미 메모를 SQLite 데이터베이스에 저장하는 작업을 이미하고 있지만, 각 메모 개체 (이미 arraylist에 저장되어 있음) 내에 해시 태그의 arraylist를 포함하여 해시 태그를 저장하려고합니다. ..

제 질문은, arraylists (해시 태그 arraylists의 arraylists 참고)의 arraylists를 SQLite 데이터베이스에 저장하는 방법은 무엇입니까?

+1

에 오신 것을 환영합니다. 실제 코드를 사용하여 시도해 보았지만 작동하지 않은 질문을 시도 할 수 있습니다. 의견 및 지침에 대한 질문은 stackoverflow의 범위가 아닙니다 – Ahmad

+0

또한 FAQ를 살펴보십시오. http://stackoverflow.com/faq – ForceMagic

답변

2

메모에 대한 sql 테이블이 있다고 가정하면 해시 태그를 저장할 다른 테이블을 만들어야합니다. 해시 태그가 속한 메모 ID를 저장하도록 열을 예약하여 모든 해시 태그를 메모에 연결할 수 있습니다.

참고 테이블 :

note_id | note 

해시 태그 테이블 :

hashtag_id | hashtag | note_id 
1

여기에 하나의 간단한 방법입니다 : 그냥 하나의 문자열로 모든 해시 태그를 저장 구조는 기본적으로 같은 것을해야한다.

String hastags="study#homework#school#math" 

지금의 hastag 컬럼으로 SQLite는, 데이타베이스에서이 문자열을 저장 : 당신은 그냥 같은 단일 문자열로 저장, 그래서 #study, #homework, #school, #math

- 예를 들어

, 메모 4 해시 태그를 가지고 말 모든 노트 객체.

Java에서는 문자열을 쉽게 파싱 할 수 있으므로 메모를 검색 할 때 hashtag 열을 가져 와서 구분 문자 ("#")를 기반으로 문자열 배열 (각 해시 태그에 대해 하나의 문자열 요소 포함))이 경우과 같이 : 이제

String hastags[]= hashtagStringFromDB.split("#"); 

, 당신은 쉽게 hashtag[0], hashtag[1]...etc

생성하는 것입니다 또 다른 옵션을 사용하면 통과 할 수있는 단일 문자열 배열에서 해당 노트 개체에 대한 모든 해시 태그를 다른 hashtags 테이블. 모든 해시 태그는 notes 테이블의 메모에 연결하기 위해 고유 식별자 (외래 키)를 사용하여이 테이블로 이동합니다. 따라서 특정 노트가 note_id 인이 테이블을 쿼리하면 해당 노트에 속한 모든 해시 태그가 반환됩니다.

관련 문제