안녕하세요. 밑에 질문드린 서준원이라고 합니다.
먼저 최공훈님꼐 감사드리며..
다름이 아니라 이번에 주소록 프로그램을 하나 만드는데
구현할 기능은 개인주소록 / 그룹주소록 입니다.
다음과 같이 기초적인 스키마는 만들어 놨습니다.
필드명은 대충 보시면 짐작하실 수 있습니다.
id 라는 필드는 주소록을 소유자의 ID를 뜻합니다.
1. 개인주소록 테이블
CREATE TABLE individualdirectory (
id varchar(32) NOT NULL,
email varchar(32) NOT NULL,
name varchar(32) NOT NULL,
cellular varchar(20) default NULL,
phone varchar(20) default NULL,
company varchar(32) default NULL,
memo text,
PRIMARY KEY (id,email)
);
2. 그룹주소록 정보 테이블
CREATE TABLE groupdirectoryinfo (
id varchar(32) NOT NULL,
name varchar(32) NOT NULL,
explanation varchar(255),
PRIMARY KEY (id,name)
);
이렇게 두개의 테이블은 만들었는데
이 두 테이블을 토대로
그룹주소록을 만들어야 합니다.
제가 나름대로 생각해본결과
3. 그룹주소록
CREATE TABLE groupdirectory (
id varchar(32) NOT NULL,
email varchar(60) NOT NULL,
name varchar(30) NOT NULL,
);
이러게 만들었습니다.
즉 어떤 사용자(id)의 개인주소록에 있는 개인주소(email)는
어떤 그룹주소록( name)에 속한다.
입니다.
저같은 경우는 개인주소록이 unique number 를 쓰지 않고
PK로 (id,email) 로 묶었거든요...
unique number 같은걸로 쓰면 DB양을 더 줄일수 있을것 같기도
한데...
아뭏든
고수님들은 어덯게 만드실지 조언좀 부탁드립니다.
|