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 24115 게시물 읽기
No. 24115
이런 방식의 설계에서 키 중복을 막을 수 있는 방법이 있는지요?
작성자
이승배
작성일
2005-09-16 11:35
조회수
2,152

현재 기존에 설계된 테이블 다수가 있습니다.

상품_도서 상품_전자 상품_가구 상품_컴퓨터 테이블TOTAL

--------- ---------- ------------ ----------- --------------

조합키A -PK 조합키A - PK 조합키A - PK .... 조합키A - PK

컬럼A_1 컬럼B_1 컬럼C_1 ....

컬럼A_2 컬럼B_2 컬럼C_2 ....

.... .... ....

 

조합키 룰은 '생성년도 + 일련번호'입니다.

 

여러 테이블에서 조합키A를 가지고 공유하여 사용하고 있고 이것을 전체 유일키로 사용합니다.

즉 A, B, C, D테이블에서 절대로 같은 조합키A가 생성이 되면 안됩니다.

테이블A에 조합키A가 5738로 잡혀있다면 테이블B에는 5738의 키가 절대 생성되어서는 안됩니다.

현재 데이터는 테이블A,B,C,D의 모든 테이블에 동시다발적으로 쏟아지고 있고요.

키가 서너개씩 중복되어 생성된 것을 볼 수가 있습니다.

조합키 룰이나 테이블 설계를 변경하지 않고 키의 중복을 막을 수 있는 방법은 없나요?

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

설계 자체가 상품별로 되어 있는 것이 맘에 걸리지만..

설계를 바꾸실 수 없다고 했으니..

연도별로 sequence를 만들어 쓰시면 될 것 같네요..

즉 공통의 채번테이블을 만든다는 거죠..

 

m님이 2005-09-16 14:19에 작성한 댓글입니다. Edit

슈퍼타입 문제이신 것 같네요....

설계 안바꾸심...

대안은 시퀀스밖에 없으신듯....

(m님 말씀에 찬성)

 

 

근데요....

이렇게 테이블 쪼개신 것이...

결국은 다른 부분에 모두 영향을 미치실텐데요..

예를 들어 판매데이타 테이블을 만드신다고 가정하면...

1. 판매데이타도 쪼개거나

2. 릴레이션을 포기하시거나

3. 조건적인 종속성 문제로 문제를 해결하시거나

 

뭐 이러셔야 할텐데요...

어떻게 하시든 문제의 복잡도가 높아져서 앞으로의 프로그램 개발에 어려움이 많으실듯...

 

일례로...

제가 알고 있는 어떤 회사의 인사 프로그램은.... 테이블의 갯수가 1000개가 넘는답니다.

그 담당 관리자 분께서는 이렇게 말씀하시죠...

'아 죽겄다... 한 사람이 많아야 200개정도의 테이블을 관리하는 것이 한계라는데... '

이 말씀에는 두가지 뜻이 있었습니다.

1. '진짜 힘들다'

2. '음... 난 이정도로 복잡한 시스템을 운영 관리한다.'

 

하지만

 

실제의 논리적 엔티티를 분석해보니 150개 정도도 안되더군요...

김흥수(protokhs)님이 2005-09-16 15:47에 작성한 댓글입니다.
이 댓글은 2005-09-16 15:53에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
24118[알바급구]게시판 코딩해줄 개발자 아르바이트를 구합니다.(ASP,ORACLE)
최규운
2005-09-17
1602
24117아우터조인 관련, 오류좀 찾아주세요 [6]
이혁
2005-09-16
8455
24116connect by 사이클 검증 SQL을 검증해주시길... [3]
김흥수
2005-09-16
3681
24115이런 방식의 설계에서 키 중복을 막을 수 있는 방법이 있는지요? [2]
이승배
2005-09-16
2152
24114OCI has fetched truncated data 워닝에러 .. [1]
초보돌진
2005-09-16
4442
24113[질문] 최대값 [1]
강명원
2005-09-15
2142
24111내부 서버의 오라클을 외부에 공개하기 [5]
권남
2005-09-15
3012
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다