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

db 쿼리문 관련 질문.

0 추천
안녕하세요, 안드로이드 초보개발자입니다..

db관련을 여기에 해도 될런지 모르겠네요.. ㅠㅠ 제가 애용하는 사이트가 여기밖에 없다보니, 일단 여기에 질문드려봅니다.

 

2개의 테이블을 만들고 생성하고 있습니다.

 

CREATE TABLE tablename1 (
_id INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,
date INTEGER NOT NULL,
service INTEGER NOT NULL
);

CREATE TABLE tablename2 (
id INTEGER NOT NULL,
name TEXT NOT NULL
);

 

이렇게 만들어 놓고 첫번째 테이블에 시간과 서비스종류를 넣습니다. 그리고 생성된 _id값을 구해와서 그 _id값을 두번째 테이블의 id값으로 하여 참여자를 넣습니다. (여러명)

db관련 작업을 해본적이 거의 없어서.. 일단 생각해본게 위의 방법인데...

이게 좋은 방법인지 모르겠네요.

조언 부탁드립니다.
블랙이요블랙 (12,860 포인트) 님이 2013년 6월 7일 질문

2개의 답변

0 추천
_id 같아야 하지 않나요 ?

두번째 테이블 id값 fk로 ㅎㅎㅎ
쿵뿌팬더 (3,440 포인트) 님이 2013년 6월 7일 답변
0 추천
첫번째 테이블에 입력된 id값을 뽑아서 두번째 테이블에 insert 하신다는 말씀인가요 ?

무슨 말씀인지... 구체적으로 설명해주시면 쿼리부분을 알려드릴 수 있지 않을까요 ?
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 7일 답변
제가 DB쪽 작업을 해본적이 없어서.. 질문도 이상하게 했나보네요..

일단 테이블을 저렇게 구성하는 이유는 직장상사가 정해주어서 그런것이구요.

제가 해야할일은 DB테이블 생성과,  putData, getData해주는 메소드를 만들어서 쓸수있게 해놓는것입니다.

첫번째테이블은 특정서비스를 언제했는가 하는것이구요,
두번째테이블은 위의 서비스를 누구와(여러명) 했나 하는것입니다.

즉 첫번째테이블 필드가 아래처럼 있으면
_id : 7, date : 시간이들어갑니다.(long), service : 5(int형으로 구별합니다.)

두번째 테이블은 아래와 같이 있을수 있겠네요.
id : 7 , name : 홍길동
id : 7 , name : 김길동
id : 7 , name : 박길동


제가 지금 putData할 방법으로 생각하는게...
date와 service를 넣어서 첫번째테이블의 필드를 만들고, 자동생성된 _id값을 다시 받아와서 그 값으로 사용자들을 두번째테이블의 필드로 넣어주는것입니다.

아... 뭔가 두서 없는것 같네요 ㅠㅠ

조언 부탁드리겠습니다.
말씀대로라면, 첫번째 테이블을 생성하고 -> 자동으로 생성된 id를 select 해서 _id 값에 인원수만큼 insert 해주는게 맞는 방법인것 같네요.. 그런데 자동으로 생성된 _id를 알수 있을까요 ? 제생각은 그렇네요.. 자동이라는게 써놓으신것처럼 1,2,3,4....이렇게 된다면 몇명안되는 테이블은 간단하겠지만, 복잡해질수도 있기때문에,  제 견해일뿐입니다만, 디비앞로직에서 혼자했느냐, 몇명이서 작업했느냐를 체크해주고, 만약 혼자했다면 첫번째 테이블에만 insert합니다. 만약, 여러명이 작업했을 경우, 첫번째와두번째 테이블에 동일하게 자동으로 id를 생성해주고, 첫번째와 두번째 테이블의 컬럼을 비교해서 동일한게 있으면 두번째 테이블에 값을 집어넣어주는건 어떨까요?
설명이 잘되었는지 모르겠네요.. ㅠ   ㅠ
...