안드로이드 개발 질문/답변
(글 수 45,052)
지금 연습용으로 만드는 어플이 단어장입니다.
현재 sqlite 테이블을 두개 만들었습니다.
1. 테이블 : 단어장
레코드 : 단어장 이름, 단어 갯수
2. 테이블 : 단어
레코드 : 단어 이름, 뜻, 해당 단어장
1. 단어장 테이블은 단어장 이름과 단어의 개수를 레코드로 갖고 있고,
2. 단어 테이블은 단어의 뜻과 해당 단어장을 레코드로 갖고 있습니다.
제 어플에서 지원하는 기능은 다음 두가지 입니다.
1. 단어장 추가 및 단어 추가.
2. 단어장 별로 단어보기
3. 모든 단어 보기
1번과 2번 기능 때문에 위처럼 두개의 테이블을 만들었는데요,
막상 구현해 보려니까,
제가 아는 지식으로는 단어장 테이블과 단어 테이블의 정보를 수동으로 업데이트를 해 줘야겠더군요..
이로 인해 코드의 복잡도가 증가해서, 안그래도 잘 모르는 DB 가 더 어렵고 꼬이고 있습니다...
제 질문은 다음 두 가지입니다.
1. 단어장 테이블에서 자신을 참조하고 있는 단어 테이블의 단어들의 개수를 자동으로 update 할 수 있는지
(정 안 되면, 단어 삭제시, 해당 단어장에서도 단어 갯수를 -1 해주는 수 밖에 없군요..)
2. 위에서 제가 언급했던 기능을 구현하기 위해, 굳이 테이블을 두개 만들어야 하는지요.
(저는 DB 퍼포먼스를 위해서, 그리고 단어장 목록을 사용자에게 보여주기 위해서 두개 만들었습니다만..)
2. 1개의 테이블을 만들면 퍼포먼스는 좋겠지요. 하지만 공간낭비가 심하게 됩니다. 정규화의 목적을 생각해 주세요.