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 13661 게시물 읽기
No. 13661
테이블을 어케 짜야 할지 감이 없습니다...도와주세여
작성자
초보자
작성일
2003-02-27 12:10
조회수
1,240

이런식의 질문은 참 애매하다고 혹은 노력도 안해본다고 하실지 모르겠습니다.

하지만 테이블설정때문에 지금 진도가 못나가고 있습니다.

그리 어렵지 않은 내용일텐데..디비에 대한 개념을 잡지 못한 저로서는

ㅡㅡㅋ

 

다름이 아니라

게시판 테이블에서 대분류-소분류 각각의 분류 코드를 얻어오면

분류테이블에 이미 정해져 있는 대분류코드,소분류코드,그리고 분류이름을

보고 각각코드에 해당하는 이름을 얻어오려고 하는데.

솔직히 테이블을 어케 짜야할지.

몇번 시도를 해보았지만, 왠지 다른방향이더군요. 쿼리를 해보면 전혀 다른

값들이 나오고,

부탁합니다.

대충의 테이블 레이아웃이라도 부탁합니다.

디비는 너무 어려버여. ㅡㅡ;

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

후훗 전에 게시판 테스트하느라 만든것이 있는데

9i로 만든거고요

편하게 하다보니 table full scan 해서 퍼포먼스가

별로 안좋아요.

데이타가 1~2만건 이하라면 써보셔도 괜찮으싶을듯

해서 올려봅니다.

너무 욕하진 마세요.

 

Create Table TB_CODE

( L_CODE varchar2(10) NOT NULL,

S_CODE varchar2(10) NOT NULL,

CD_NAME varchar2(60) NOT NULL,

USE_YN char(1) default 'Y',

ETC varchar2(100) default ' ',

Constraints TB_CODE_PK Primary Key (L_CODE,S_CODE) Using Index

Tablespace TOOLS

Storage(INITIAL 500K NEXT 500K PCTINCREASE 0)

)

Tablespace TOOLS

Storage(INITIAL 1M NEXT 1M PCTINCREASE 0)

/

 

Create Table TB_BOARD

( SEQ number(6) NOT NULL,

ID_NUM number(6) NOT NULL,

ID_DEP number(6) NOT NULL,

ID_REP number(6) default 0 NOT NULL,

L_CODE varchar2(10) NOT NULL,

S_CODE varchar2(10) NOT NULL,

TITLE varchar2(40) NOT NULL,

NAME varchar2(40) NOT NULL,

COMM varchar2(100) default ' ',

PWD varchar2(10) NULL,

READ number(6) default 0,

UP_DATE date default sysdate,

EMAIL varchar2(60) default ' ',

DEL_YN varchar2(60) default 'N',

Constraints TB_BOARD_PK Primary Key (SEQ) Using Index

Tablespace TOOLS

Storage(INITIAL 5M NEXT 5M PCTINCREASE 0)

)

Tablespace TOOLS

Storage(INITIAL 10M NEXT 10M PCTINCREASE 0)

/

 

Create Index TB_BOARD_ID on TB_BOARD(ID_NUM,ID_DEP,ID_REP)

Tablespace TOOLS

Storage(INITIAL 5M NEXT 5M PCTINCREASE 0);

 

Create Index TB_BOARD_CODE on TB_BOARD(L_CODE,S_CODE,ID_NUM,ID_DEP,ID_REP)

Tablespace TOOLS

Storage(INITIAL 5M NEXT 5M PCTINCREASE 0);

 

insert into tb_code

select '0','A','oracle','Y',' ' from dual union all

select '0','B','ms-sql','Y',' ' from dual union all

select '0','C','mysql','Y',' ' from dual union all

select 'A','1','DBA','Y',' ' from dual union all

select 'A','2','PLSQL','Y',' ' from dual union all

select 'A','3','OPS','Y',' ' from dual union all

select 'B','1','DBA','Y',' ' from dual union all

select 'B','2','TSQL','Y',' ' from dual union all

select 'B','3','DTS','Y',' ' from dual union all

select 'C','1','DBA','Y',' ' from dual union all

select 'C','2','SQL','Y',' ' from dual union all

select 'C','3','REPLICATION','Y',' ' from dual;

/

 

insert into tb_board

select 1,1,0,0,'A','1','오라클DBA1번','테스터1','...','111',0,sysdate,'a@a.net','N' from dual union all

select 2,1,1,1,'A','1','RE)오라클DBA1번','답변자1','...','111',0,sysdate,'a@a.net','N' from dual union all

select 3,2,1,1,'A','1','RE)오라클DBA1번','답변자2','...','111',0,sysdate,'a@a.net','N' from dual union all

select 4,3,1,1,'A','1','RE)오라클DBA1번','답변자3','...','111',0,sysdate,'a@a.net','N' from dual union all

select 5,1,2,2,'A','1','RE)RE)오라클DBA1번','답변자4','...','111',0,sysdate,'a@a.net','N' from dual union all

select 6,2,2,2,'A','1','RE)RE)오라클DBA1번','답변자5','...','111',0,sysdate,'a@a.net','N' from dual union all

select 7,1,2,4,'A','1','RE)RE)오라클DBA1번','답변자5','...','111',0,sysdate,'a@a.net','N' from dual union all

select 8,2,0,0,'A','1','오라클DBA2번','테스터2','...','111',0,sysdate,'a@a.net','N' from dual union all

select 9,1,1,8,'A','1','RE)오라클DBA2번','답변자1','...','111',0,sysdate,'a@a.net','N' from dual union all

select 10,2,1,8,'A','1','RE)오라클DBA2번','답변자2','...','111',0,sysdate,'a@a.net','N' from dual

/

 

Select ROW_NUMBER() OVER(ORDER BY ID_DEP desc,ID_NUM) RNUM,SEQ,ID_REP,ID_NUM,SUBSTR(LPAD(' '||LEVEL, 2*(LEVEL))||a.TITLE,1,30) "TITLE"

From TB_BOARD a, TB_CODE b

Where a.L_CODE = b.L_CODE

And a.S_CODE = b.S_CODE

And a.L_CODE = 'A'

And a.S_CODE = '1'

Start With a.ID_REP = 0

Connect By PRIOR a.SEQ = a.ID_REP

Order SIBLINGS by ID_NUM

/

 

이게 될려나...

kk님이 2003-02-28 17:35에 작성한 댓글입니다.

쩝 위에 쿼리문이 틀렸군요

 

Select * from (

Select rownum rnum,SEQ,ID_REP,ID_NUM,SUBSTR(LPAD(' ', 2*(LEVEL))||a.TITLE,1,30) "TITLE"

From TB_CODE b,TB_BOARD a

Where a.L_CODE = b.L_CODE

And a.S_CODE = b.S_CODE

And b.L_CODE = 'A'

And b.S_CODE = '1'

And rownum < 10

Start With a.ID_REP = 0

Connect By PRIOR a.SEQ = a.ID_REP

Order SIBLINGS by decode(ID_REP,0,ID_NUM) desc,ID_NUM

)

where rnum > 4

/

kk님이 2003-02-28 17:37에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
13665레뎃7.3+9iR2 설치시 에러에 관한 질문 입니다
넌두렁
2003-02-27
669
13664[질문] varchar2형을 long형으로 변경시... [2]
정남용
2003-02-27
1713
13662와우 리눅스 파란 R2에 오라클 9i설치중 위저드창이 없어졌어요
jay
2003-02-27
773
13661테이블을 어케 짜야 할지 감이 없습니다...도와주세여 [2]
초보자
2003-02-27
1240
13660트리거좀 도와주세요(밑에질문보충) [1]
민이
2003-02-27
820
13663┕>Re: 트리거좀 도와주세요(밑에질문보충)
홍길동
2003-02-27 13:21:46
979
13659영스
민이
2003-02-27
569
13656밑에 질문의 상세내용입니다 ㅡㅡ;
어려버
2003-02-27
654
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.032초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다