마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SQLite DB 구조 질문드립니다.

0 추천
제가 채팅방을 만들려고 하는데, DB를 만들때에 예를 들면,

 

id name text 구조가 이렇다 했을 때, 추가되는 내용들이

0 id name text

1 id name text

2 id name text 이런식으로 테이블이 증가하는 건가요?? 아니면

 

id name text 처럼 하나의 테이블 안에 각각의 항목 안에서 배열처럼 데이터가 여러개 저장되는 건가요??

 

그리고 또 궁금한게 있는데요, 채팅하다보면 여러 사람과 대화해야하는데, 하나의 테이블 가지고는 힘들 것 같습니다. 뭔가 분리해줘야할 방법이 있어야 되는데,

 

테이블 안에 테이블을 넣는다던가,

 

아니면 그떄마다 새로운 db 파일을 만들어서 데이터를 저장시켜야 되는지, 그래도 괜찮은지 궁금합니다.

 

답변 부탁드리겠습니다!!!
알파고 (4,320 포인트) 님이 2017년 11월 9일 질문

1개의 답변

+1 추천
 
채택된 답변
sqllitedb의 기본 컨셉에 대한 튜토리얼을 따라하고 개발하는게 좋을 것 같습니다.

기본적으로 테이블을 엑셀의 시트와 똑같습니다.

id, text 등은 액셀의 열에 해당하는 것입니다. 따라서 데이터를 insert할 때마다 한 행씩 추가되는 개념입니다.

테이블 안에 테이블을 넣는 개념으로 되는게 아니라,

Users 테이블과 Messages 테이블이 있다면,

Users의 id 컬럼이 키가 되어, Messages 테이블의 Foreign Key로 연결되어, 어떤 유저가 어떤 메시지를 작성했는지를 두 테이블이 Join으로 알게 됩니다.

제가 알고 있기로 SQLite에서 테이블을 만들었다가, 해당 테이블에 항목이 추가되면,

즉 table의 구조가 바뀌면, 데이터 가 다 날라가 버리기 때문에, table 구조가 바뀌면, 백업받고, DB를 날리고, 다시 만들고, 다시 리스토어 해야 하는 걸로 알고 있습니다. (오래 전이라 지금은 아닐 수 있음)

이런 식이어서 저는 그냥  Shared Preference를 쓰거나 서버의 DB를 사용합니다.

죄송하지만, 지금 하신 질문으로 제가 추측컨데,
현재 가지고 계신 지식으로 보아서는 Learning Curve가 크기 때문에, 시행착오를 해도 상관없는 프로젝트 아니면, 배우는 시간을 충분히 추가해야 할 것으로 보이네요.
Will Kim (43,170 포인트) 님이 2017년 11월 10일 답변
알파고님이 2017년 11월 12일 채택됨
...