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 29190 게시물 읽기
No. 29190
테이블구조
작성자
초보자(zero07942)
작성일
2006-12-26 18:01ⓒ
2006-12-28 18:14ⓜ
조회수
2,167

순번 년도  코드 명칭 년도 순번 코드 명칭 변경여부
1 2004년 1300.0000 부가통신서비스 2005년 1 1300.0000 부가통신서비스
2 2004년 1310.0000 네트워크서비스   2005년 2 1310.0000 네트워크서비스 통합
3 2004년 1311.0000 회선교환서비스 2005년 1310.0000 네트워크서비스 통합
4 2004년 1312.0000 패킷교환서비스 2005년 1310.0000 네트워크서비스 통합
5 2004년 1313.0000 프레임릴레이서비스 2005년 1310.0000 네트워크서비스 통합
6 2004년 1314.0000 ATM서비스 2005년 1310.0000 네트워크서비스 통합
7 2004년 1315.0000 가상사설망서비스 2005년 1310.0000 네트워크서비스 통합
8 2004년 1320.0000 인터넷접속 및 관리서비스 2005년 3 1320.0000 인터넷접속 및 관리서비스
9 2004년 1321.0000 PC통신 서비스 2005년 삭제
2004년     2005년 4 1330.0000 관리자서비스 신설

   


즉...

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

1.  2004년도 1310.0000 ~ 1315.0000 사이의 코드가 

     2005년도 1310.0000 코드로 통합


2. 2004년도 1321.0000 코드가  2005년도에 오면서 삭제되었습니다.


3.  2004년도에는 없었던 명칭이 2005년도에 오면서 1330.0000 코드로 새로운 명칭이  신설되었습니다.


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

이런 정보를 관리하는 히스토리 테이블을 만들려고 합니다.


2006년도 되면 체계가 또 우째 바뀔지 모릅니다.


이런 정보를 테이블에 저장해서...변경된 데이터를 한눈에 보일려고 합니다.


어떻게 해야 할까요??


정말 막막 그 자체입니다..


테이블 구조를 어떻게 잡아야 하며... 입력은 또 어떻게 해야 하는지?? 조회는 또 어떻게 해야 하는지??


아시는 분...조언 꼭 부탁드립니다.

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

테이블 구조는 이 구조가 전부 인가요?


+-----+-----+------+-----+-----+------+---------+

| 년도 | 코드 | 명칭 | 년도 | 코드 | 명칭 | 변경여부 |

+-----+-----+------+-----+-----+------+---------+

님이 원하시는 작업은 트리거를 쓰면 될 듯 싶습니다.

그리고 INSERT / UPDATE / DELETE 시에 변경되어지는 부분은 어디인지?

님의 글로 추정을 하면, 처음 세 필드 (년도, 코드, 명칭)는 변함이 없고 

뒤에 나오는 네개의 필드 (년도, 코드, 명칭, 변경여부)입니다만... 

뒤 에 나오는 네개의 필드가 언제 변경 되었는지도 알아야 한다는 것 같습니다만...

이게 맞는지요...

상기 DML 작업을 할 경우 어느 데이터가 어떻게 보이고 싶은지를 

좀 더 자세히 설명 해 주시기 바랍니다.

ohyouknow님이 2006-12-27 15:00에 작성한 댓글입니다.
이 댓글은 2006-12-27 15:05에 마지막으로 수정되었습니다. Edit

/*----------------

1. 테이블 구조는

----------------*/

지금 위에서 보여준 구조 그대로면 되는 겁니까?

아니면 이 외에도 다른 데이터를 가져 와야 하는 지...


/*----------------

2. 년도별로 코드와 명칭이 바뀝니다. 

   통합이 될수도 있고.삭제가 될수도 있고, 신설이 되는 경우도 있습니다.

----------------*/

라고 하셨는데... 각각의 경우를 설명 해주시기 바랍니다.


통합 : UPDATE

삭제 : DELETE

신설 : INSERT

/*----------------

3. 2004년 1321.0000 코드가 2005년에는 어떻게 되었는지 

----------------*/

2004년 1321.0000 코드가 변경 되는 시점은 어떻게 됩니까?

자동적으로 다음 해로 넘어 가는 지, 아니면 년말에 수정을 하게 되는지...


/*----------------

4. 그래서 위의 파일을 보고 3번에 해당하는 이력을... 

----------------*/

3번이라 함은 어떤 필드인지....

앞에서부터 1번이라 가정하고 설명 해 주심 이해하기가 쉬울듯 합니다.


또한 트리거를 사용해서 위 구조를 작성 할 경우, 너무나 잦은 DML이 있다면....

서버에 영향을 줄 수도 있습니다.

설명히 충분하다면.... 다른 방법도 있을 거 같으나...

지금 으로서는 이정도입니다.



**

님!

님이 작성하신 엑셀데이터에 가로 세로로 번호를 넣어 주심 제가 질문하기가 편하겠는데...

**

ohyouknow님이 2006-12-27 17:52에 작성한 댓글입니다.
이 댓글은 2006-12-27 18:03에 마지막으로 수정되었습니다. Edit

결론은 년도 코드 명칭을 보고자 하는 겁니까?
그리고 변경여부는 언제 보여 주어야 합니까?
본 테이블에 변경여부 필드도 있습니까?
====================================================
2) 현재 디비에 데이터가 들어간 테이블(db_code) 이
       +-----+-----+------+
       | 년도 | 코드 | 명칭 | 
        2004    ~~      ~~~ 
                  .....
        2005    ~~      ~~~
       +-----+-----+------+       
       이런 방식으로 들어가 있습니다.
====================================================
라고 하셨는데... 
db_code테이블은 세개의 필드 외엔 아무 것도 없다는 말이네요?

ohyouknow님이 2006-12-28 14:41에 작성한 댓글입니다. Edit

님의 문제는 테이블 구성을 자세히 올려 놓고...
샘플 데이터를 올려 놓고...
원하는 데이터를 추출 해 내는 법을 물어 보면 한방의 SQL로 가능해 보입니다.
결국 님이 원하시는게 년도 코드 명칭을 년도별로 아래로 주욱 나열해서 보여주기만 하면 되는 문제 인거 같습니다.
굳이 히스토리 테이블을 만들어 트리거를 쓰지 않아도 될 듯 싶습니다.
이 사이트에는 SQL고수분 엄청 많습니다.
그러니 그리 하시는게 훨 쉽게 해결 될 것입니다.

ohyouknow님이 2006-12-28 18:04에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
291939i 에서 pfile 위치 지정???
낚시꾼
2006-12-27
942
29192지금현재 세션중 full table scan을 하는 쿼리/사용자 를 알고 싶습니다
kevin
2006-12-26
1201
29191lock이 걸렸을때 bloker를 찾고 싶습니다 [2]
kevin
2006-12-26
3858
29190테이블구조 [4]
초보자
2006-12-26
2167
29189db에서 사용하는 모든 쿼리 뽑기 [1]
kill
2006-12-26
1947
29177쿼리 질문입니다......
펭도사
2006-12-26
1011
29176rownum()의 반대가 되는.... [4]
ych3372
2006-12-26
2460
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다