1.아는 만큼 보이는 데이터베이스 설계와 구축
http://book.naver.com/bookdb/book_detail.nhn?bid=4640260
DB실력에 목마르기 전에 하나 사야겠다..
1.아는 만큼 보이는 데이터베이스 설계와 구축
http://book.naver.com/bookdb/book_detail.nhn?bid=4640260
DB실력에 목마르기 전에 하나 사야겠다..
no | title | grp | seq | lvl |
1 | 안녕하세요 | 1 | 1 | 1 |
insert into board( title, grp, seq, lvl )
values('날씨가 맑습니다', (select last_insert_id()+1), 1, 0);
no | title | grp | seq | lvl |
1 | 안녕하세요 | 1 | 1 | 0 |
2 | 날씨가 맑습니다 | 2 | 1 | 0 |
3 | 모임이 있습니다 | 3 | 1 | 0 |
update board
set seq = seq + 1
where grp = 1
and seq > 1;
insert into board( title, grp, seq, lvl )
values('반가워요', 1, 1+1, 0+1);
no | title | grp | seq | lvl |
1 | 안녕하세요 | 1 | 1 | 0 |
2 | 날씨가 맑습니다 | 2 | 1 | 0 |
3 | 모임이 있습니다 | 3 | 1 | 0 |
4 | 반가워요 | 1 | 2 | 1 |
update board
set seq = seq + 1
where grp = 1
and seq > 2;
insert into board( title, grp, seq, lvl )
values('감사합니다', 1, 2+1, 1+1);
no | title | grp | seq | lvl |
1 | 안녕하세요 | 1 | 1 | 0 |
2 | 날씨가 맑습니다 | 2 | 1 | 0 |
3 | 모임이 있습니다 | 3 | 1 | 0 |
4 | 반가워요 | 1 | 2 | 1 |
5 | 감사합니다 | 1 | 3 | 2 |
update board
set seq = seq + 1
where grp = 1
and seq > 1;
insert into board( title, grp, seq, lvl )
values('감사합니다', 1, 1+1, 0+1);
no | title | grp | seq | lvl |
1 | 안녕하세요 | 1 | 1 | 0 |
2 | 날씨가 맑습니다 | 2 | 1 | 0 |
3 | 모임이 있습니다 | 3 | 1 | 0 |
4 | 반가워요 | 1 | 3 | 1 |
5 | 감사합니다 | 1 | 4 | 2 |
6 | 환영합니다 | 1 | 2 | 1 |
update board
set seq = seq + 1
where grp = 1
and seq > 2;
insert into board( title, grp, seq, lvl )
values('감사합니다', 1, 2+1, 1+1);
no | title | grp | seq | lvl |
1 | 안녕하세요 | 1 | 1 | 0 |
2 | 날씨가 맑습니다 | 2 | 1 | 0 |
3 | 모임이 있습니다 | 3 | 1 | 0 |
4 | 반가워요 | 1 | 4 | 1 |
5 | 감사합니다 | 1 | 5 | 2 |
6 | 환영합니다 | 1 | 2 | 1 |
7 | 감사합니다 | 1 | 3 | 2 |
select * from board order by grp desc, seq asc;
<DDL> 예제
drop table board;
create table board(
no int primary key,
title varchar2(45),
grp int,
seq int,
lvl int);
drop sequence board_no_seq;
create sequence board_no_seq start with 1 increment by 1;
create index board_grp_seq on board(grp desc, seq asc);
<DML> 예제
[첫번째 게시물 입력 - 새 글 입력]
insert into board
values(board_no_seq.nextval, board_no_seq.currval, 1, 0);
[두번째 게시물 입력 - 새 글 입력]
insert into board
values(board_no_seq.nextval, board_no_seq.currval, 1, 0);
[세번째 게시물 입력 - 새 글 입력]
insert into board
values(board_no_seq.nextval, board_no_seq.currval, 1, 0);
[네번째 게시물 입력 - 첫번째 게시물의 답글]
(답글이 올라오는 경우에는 답글에 부여 할 seq를 먼저 확보해준다.)
update board
set seq=seq+1
where grp=1 and seq > 1;
insert into board
values(board_no_seq.nextval, '반가워요', 1, 2, 1);
[다섯번째 게시물 입력 - 네번째 게시물의 답글]
update board
set seq=seq+1
where grp=1 and seq > 2;
insert into board
values(board_no_seq.nextval, '감사합니다', 1, 3, 2);
[여섯번째 게시물 입력 - 첫번째 게시물의 두번째 답글]
update board
set seq=seq+1
where grp=1 and seq > 1;
insert into board
values(board_no_seq.nextval, 1, 2, 1);
[일곱번째 게시물 입력 - 여섯번째 게시물의 답글]
update board
set seq=seq+1
where grp=1 and seq > 2;
insert into board
values(board_no_seq.nextval, '감사합니다', 1, 3, 2);
[게시판을 검색하는 경우, grp로 내림차순, seq로 오름차순으로 정렬하면 됩니다.]
select case when lvl=0 then no
when lvl>0 then null end no
, rpad('+', lvl, '-')||title title
from board
order by grp desc, seq;
[검색결과]
no title
----------------
3 모임이 있습니다
2 날씨가 맑습니다
1 안녕하세요
+환영합니다
+-감사합니다
+반가워요
+-감사합니다
출처 : http://hdm6337.tistory.com/entry/%EA%B3%84%EC%B8%B5%ED%98%95-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%8C%93%EA%B8%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
[MySQL] 날짜 차이 구하기 (0) | 2014.11.27 |
---|---|
[MySQL] DB 쿼리결과 개수 제한하기 - Limit 연산자 (0) | 2014.11.18 |
DB ConnectPool 쉬운 사용방법 java 파일 ( pool ) (0) | 2014.10.02 |
MySQL 사용자 관리 명령어 (0) | 2014.09.14 |
mysql에 cvs 파일을 넣는방법 (0) | 2014.09.11 |
<c:set var="checkDate" var='${request.getParameter("Date")}' />
이렇게 받아온 CheckDate를
javascript의 변수인
var chDate 라는 변수가 있을 때
checkDate값을 chDate에 넣어주고 싶습니다.
이런질문이있었다
답은
var chDate = '<c:out value="${checkDate}"/>'; 이렇게 하면된다.
[JavaScript][자바스크립트] 숫자만 입력가능하게 한 스크립트 (0) | 2014.11.09 |
---|---|
JavaScript 팝업창에서 부모창 닫기 (0) | 2014.09.13 |