database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 271 게시물 읽기
No. 271
Re: [질문]주소록 스키마좀 봐주세요
작성자
김대성
작성일
2002-01-08 00:56
조회수
8,970

님.. 테이블을 만들고 PK를 선정하고 Attribute를 성급히 만드시기 전에 먼저 구현하려는 대상의 성질부터 먼저 파악하셔야 겠습니다.

 

제가 님의 글을 보고 이해한 바로는 주소록 프로그램을 만드는데 주소록은 개인의 인적정보를 저장하는데 개인적으로 또는 그룹별로 개인의 주소록을 출력을 할 수 있도록 결과를 내고 싶은거죠...?

 

한명의 사람은 여러 그룹에 소속될 수 있으므로 우선 생각해 볼 수 있는것은 개인:그룹의 관계참여는 1:M형식이 될것입니다.

 

한 그룹은 여러 개인을 소속할 수 있으므로 그룹:개인의 관계참여는 1:M관계의 테이블이 나옵니다.

 

고로 개인과 그룹테이블의 관계참여는 M:N이 됩니다.

 

M:N관계의 해소를 위해서 "그룹명단"이라는 테이블을 하나 만드는데 이 테이블은 복합키를 가집니다. 복합키의 구성요소는 개인테이블의 주키와 그룹테이블의 주키로 이루어 져 있습니다.

 

이렇게 3개의 테이블을 만들면 M:N관계가 1:M관계로 해소시켜 주고 원하는 조건을 만족하는 데이터 구조를 쉽게 만드실 수 있을껍니다.

 

주키와 외래키를 모두 정하셨으면 주키에 종속되는 Attribute를 잘 판단하시어 테이블에 적절히 넣어 주시면 됩니다. 가력 그룹명에 해당하는 놈은 그룹 테이블에 개인 전자우편은 당연히 개인 테이블로 설정되어 지겠죠. "그룹명단"에 해당하는 테이블의 Attribute는 가입일자, 그룹직분등이 올 수 있겠지요..

 

 

-- 서준원 님이 쓰신 글:

>> 안녕하세요. 밑에 질문드린 서준원이라고 합니다.

>> 먼저 최공훈님꼐 감사드리며..

>>

>> 다름이 아니라 이번에 주소록 프로그램을 하나 만드는데

>> 구현할 기능은 개인주소록 / 그룹주소록 입니다.

>>

>> 다음과 같이 기초적인 스키마는 만들어 놨습니다.

>> 필드명은 대충 보시면 짐작하실 수 있습니다.

>> 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양을 더 줄일수 있을것 같기도

>> 한데...

>>

>> 아뭏든

>> 고수님들은 어덯게 만드실지 조언좀 부탁드립니다.

[Top]
No.
제목
작성자
작성일
조회
276[질문]추가적인 애트리뷰트가 필요할떄, 그것을 어떻게? [1]
서준원
2002-01-08
7909
277┕>답변 감사하고 수정된 질문 내용입니다.(죄송)-_- [1]
서준원
2002-01-09 08:26:08
8428
273[질문]FK 의 설정에 대해서. [2]
서준원
2002-01-08
8352
275┕>Re: [질문]FK 의 설정에 대해서. [1]
서준원
2002-01-08 13:25:36
9280
278 ┕>[질문]죄송.. 약간의 풀리지 않는 궁금점이 남아서
서준원
2002-01-09 09:02:06
8489
284  ┕>Re: [질문]죄송.. 약간의 풀리지 않는 궁금점이 남아서 [1]
김대성
2002-01-09 23:48:18
9479
267[질문]PK가 너무 많아서.. 설계가 잘못된 것인가요? [1]
서준원
2002-01-07
8060
268┕>Re: [질문]PK가 너무 많아서.. 설계가 잘못된 것인가요?
서준원
2002-01-07 16:23:14
8599
266[질문]주소록 스키마좀 봐주세요 [1]
서준원
2002-01-07
8827
271┕>Re: [질문]주소록 스키마좀 봐주세요
김대성
2002-01-08 00:56:59
8970
253C-ISAM A.dat, A.idx를 Access로 Loader [1]
김대철
2002-01-05
8269
237[질문]보통 PK 를 최대 몇개씩 묶습니까?
서준원
2002-01-04
8285
238┕>Re: [질문]보통 PK 를 최대 몇개씩 묶습니까?
최공훈
2002-01-04 13:32:22
8640
236[질문]주소록을 만드려고 하는데 스키마 조언좀 부탁드립니다.
서준원
2002-01-04
8249
239┕>Re: [질문]주소록을 만드려고 하는데 스키마 조언좀 부탁드립니다.
최공훈
2002-01-04 13:47:18
8781
240 ┕>Re: Re: [질문]주소록을 만드려고 하는데 스키마 조언좀 부탁드립니다.
서준원
2002-01-04 14:53:02
8613
242  ┕>Re: Re: Re: [질문]주소록을 만드려고 하는데 스키마 조언좀 부탁드립니다.
최공훈
2002-01-04 15:44:55
9378
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다