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
운영게시판
최근게시물
PostgreSQL Q&A 6308 게시물 읽기
No. 6308
외래키를 한 필드에 여러개 물려줬을때...
작성자
가시고기
작성일
2005-09-07 10:09
조회수
1,951

안녕하세요.

현재 DB로 테이블을 만들었는데... 문제가 생겨서

질문을 하려고 합니다.

 

정보를 가지고 있는 테이블이 3개가 존재하고

그 정보 테이블의 인덱스를 tbl_test라는 테이블에서

info_index 라는 필드에 3개의 인덱스를 외래키로 연결을 하였습니다.

 

그런데 데이터를 등록하려고 하니 3개의 인덱스 일치하지 않는다면서 데이터가

등록되지 않습니다.. 그래서 질문인데요.

 

외래키를 걸어주고 서로 외래키로 물려준거에 영향을 받지 않고 데이터를 등록할

수 있는 방법이 없을가요..

답변 부탁드립니다.

 

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

저도 가끔 이런 설계를 할 때가 있는데 이럴 경우에는 외래키를 쓰시면 안된다고 생각합니다.

 

외래키는 성능에는 오히려 장애가되는 장치로 오직 무결성을 보장하기 위해서 필요한 것입니다. 그런데 한 table이 다른 세 table을 참조하는 상황이라면 분명 외래키를 걸 수 없는 설계상 문제가 있는 경우이죠. 정상적인 설계라면 세 table을 참조하는 같은 구조의 table을 각각 세개 만들고 view를 하나 만들어서 이 세 table을 union으로 검색하도록 해야하겠죠. 그러면 외래키 문제가 해결될겁니다.

 

하지만 실무에서는 효율성의 문제로 한 table로 해결하는 것이 좋은 경우가 분명히 있습니다. 이 경우에는 세 table이지만 예측 못할 만큼 늘어나는 경우도 있을 수 있으니까요.

 

그냥 외래키를 끊으세요. 굳이 걸어야 하는 상황이 아니니 말입니다. 사실 많은 경우 개발 단계에서는 버그를 찾기 위해서 외래키를 설정하지만 안정화가 되면 성능 때문에 외래키를 없앱니다.

박성철(gyumee)님이 2005-09-07 15:03에 작성한 댓글입니다.
이 댓글은 2005-09-07 15:12에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
6311PHP와의 연동에서 한글 문제 [1]
박형범
2005-09-09
1946
6310이미 선택된 것 이외의 것을 선택하는데 너무 느리네요.. 최적화할 수 있는 방법은 없나요? [7]
최정대
2005-09-09
2240
6309윈도우용 설치파일을 [2]
초보
2005-09-09
1822
6308외래키를 한 필드에 여러개 물려줬을때... [1]
가시고기
2005-09-07
1951
6307라이브러리 호환 방법 문의? [5]
ssik425
2005-09-06
1675
6306[질문]중복됨 없이 숫자를 입력되게 하려면. [6]
가우나라
2005-09-06
2293
6305다중 IP를 사용하는 시스템에서 pgsql연결.. [4]
이현순
2005-09-05
2384
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다