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
운영게시판
최근게시물
Oracle Q&A 38908 게시물 읽기
No. 38908
1:0,1 릴레이션 테이블 설계 질문
작성자
작성일
2011-09-27 10:46
조회수
4,354

안녕하세요 오랫만에 질문 올립니다.

데이타베이스 설계를 진행중에 모르는 것이 있어 질문 드립니다.

1:0,1릴레이션 TABLE을 설계 중입니다만,

정보TABLE, 메타TABLE이 있습니다.

두 TABLE은 1:0,1릴레이션을 가지고 있고,

정보TABLE은 컬럼수가 10개

메타TABLE은 컬럼수가 100개

정도 입니다.

 

1.질문:메타TABLE의 외부키를 정보TABLE의 [정보ID]로 하고 그[정보ID]를 메타테이블의 프라이머리 키로 지정하였는데 이런 설계가 바른 것인지요???

(즉, 메타TABLE의 프라이머리키,외부키가 정보ID1개입니다.)

 

2.질문: 메타TABLE의 메타ID를 만들고 프라이머리키로 하여, 정보TABLE이  메타ID를 외부키로 들고 있는 것이 바른 것인지요?

 

3.질문:정보TABLE에 메타정보도 함께 넣어서 1개의 테이블로 만드는 것이 바른 것인지요?

(컬럼수많은 메타정보만 검색하는 경우도 있어서 검색에 문제가 있을 것으로 예상되어 테이블을 나누었습니다. )      

 

4.질문:1:0,1릴레이션은 어떤경우에 주로 쓰이나요?

 

아시는 분 답변좀 부탁드립니다. 잘 부탁드립니다.

 

 

 

 

 

 

이 글에 대한 댓글이 총 2건 있습니다.

1.질문:메타TABLE의 외부키를 정보TABLE의 [정보ID]로 하고 그[정보ID]를 메타테이블의 프라이머리 키로 지정하였는데 이런 설계가 바른 것인지요???
(즉, 메타TABLE의 프라이머리키,외부키가 정보ID1개입니다.)
  -> PK, RI는 자연스러워 보입니다.
  -> 명칭에 대한 고민이라면, 2번으로..

2.질문: 메타TABLE의 메타ID를 만들고 프라이머리키로 하여, 정보TABLE이  메타ID를 외부키로 들고 있는 것이 바른 것인지요?
  -> 명칭은 메타TABLE에서의 사용명칭으로 하는 것이 맞을듯 합니다.
  -> 물리적인 고민이라면, 관리 편의상 같은 명칭으로 가는 것도 방법일 듯 합니다.(도메인 관리 편의성을 위해서)
  -> 논리명은 다르게하고, 물리명만 같게 만드는 경우도 있을 듯 합니다만, 도메인으로 관리할 수도 있을 듯 합니다.

3.질문:정보TABLE에 메타정보도 함께 넣어서 1개의 테이블로 만드는 것이 바른 것인지요?
     (컬럼수많은 메타정보만 검색하는 경우도 있어서 검색에 문제가 있을 것으로 예상되어 테이블을 나누었습니다. )
  -> 실제로 성능 테스트로 검토하면 어떨런지요?
  -> 분리하든, 1개로 하든, 근기를 남기는 것이 중요하다고 생각됩니다.
     예를 들어, 분리했을 때, 쿼리문이 복잡해 질 수 있는데, 그 때,
     이러한 근기로 우리는 이것을 분리했다라는 근기가 있어야, 불평(?)이 비교적 줄어들지 않을까 생각됩니다.

4.질문:1:0,1릴레이션은 어떤경우에 주로 쓰이나요?
  -> 논리적으로 1개인데, 물리적으로 쪼개는 경우인 듯 합니다.
  -> 1:0의 경우는 프로세스에 의한 데이터 생성(발생) 주기가 달라서일 듯 합니다.
  -> 1:1은 성능 향상을 위해서, 보안을 위해서, 변경이 많아서, 락 발생 최소화를 위해서 등 일 듯 합니다.

무엇보다 중요한 건 합치든, 분리하든 근기를 남기는 것이 가장 중요하다고 생각되어집니다.
 

데니안(denian)님이 2011-09-27 11:39에 작성한 댓글입니다.

 데니안님 명쾌한 해설 감사드립니다. 대니안님의 도움으로 질문1 방식으로 진행하기로 했습니다.

정말 감사드립니다.!!!!!

 

김님이 2011-09-27 11:48에 작성한 댓글입니다.
이 댓글은 2011-09-27 11:49에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38912오라클 쿼리에서 & 문자열을 출력하려면 어떻게 하면 되나요? [2]
조동건
2011-09-27
4188
38911이런 쿼리 한번에 가능한가요? [2]
조동건
2011-09-27
4043
38910쿼리를 간단하게 하려면.. [1]
궁금이
2011-09-27
3531
389081:0,1 릴레이션 테이블 설계 질문 [2]
2011-09-27
4354
38907오라클 SQL에서 변수 선언은 어떻게 하나요? [3]
조동건
2011-09-26
4777
38906Add Month [2]
하홍민
2011-09-26
4531
38905query에서 조건으로 select하기 [5]
한상원
2011-09-26
5554
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다