Published on: 2013. 11. 14. 16:18 by louis.dev
오라클에서 데이터를 저장하다 보면 한 테이블 내에 부모 자식 관계(상하위 관계)로 표현하는 데이터가 발생될 때가 있다.
예를 들어
게시판
↳ 공지사항 게시판
↳ 사용자 게시판
와 같이 메뉴를 저장하는 테이블이 있다면 상위 게시판이라는 메뉴는 하위에 공지사항 게시판 메뉴, 사용자 게시판 메뉴를 하위로 가진다면, 데이터 구조는 다음과 같이 생성될 것이다.
MENUID |
NAME |
URL |
PARENTMENUID |
1 |
공지사항 게시판 |
/notice.html |
2 |
2 |
게시판 |
/index.html |
null |
3 |
사용자 게시판 |
/user.html |
2 |
만약 쿼리를 상위 메뉴 데이터를 먼저 나오게 하고 그 뒤에 하위 메뉴들을 나오게 하려면 어떻게 해야할까? 이때 Oracle에서는 start with, connect by prior를 사용하여 데이터를 셀렉트 할수 있다.
SELECT
menuid, name, url, parentmenuid
FROM menu
START WITH parentmenuid is null /*상위(부모)의 조건을 명시*/
CONNECT BY PRIOR menuid = parentmenuid /*상위의 키와 하위의 키를 열결시킴*/
ORDER SIBLINGS BY menuid ASC; /*하위데이터 정렬 조건*/
이렇게 쿼리를 사용하게 되면 다음과 같이 셀렉팅이 된다.
MENUID |
NAME |
URL |
PARENTMENUID |
2 |
게시판 |
/index.html |
null |
1 |
공지사항 게시판 |
/notice.html |
2 |
3 |
사용자 게시판 |
/user.html |
2 |
Published on: 2011. 11. 19. 01:13 by louis.dev
1.
MongoDB 공식 홈페이지에서 설치하려고 하는 OS의 버전에 따라 다운로드 한다.
#db 데이터가 저장될 디렉토리 생성 mongodb의 default는 /data/db 디렉토리이다.
$ mkdir -p /data/db
$ cd /data
$ wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.1.tgz
$ chown ${사용자명}:${사용자그룹명} mongodb-linux-x86_64-2.0.1.tgz
$ tar xvf mongodb-linux-x86_64-2.0.1.tgz
#mongodb 시작
$ ./mongodb-linux-x86_64-2.0.1/bin/mongod &
$ ps -ef |grep mongod
root 2746 2577 0 01:12 pts/0 00:00:00 ./mongodb-linux-x86_64-2.0.1/bin/mongod
root 2759 2577 0 01:13 pts/0 00:00:00 grep mongod
Published on: 2011. 4. 20. 15:24 by louis.dev
Published on: 2010. 8. 31. 17:59 by louis.dev
보통 리눅스의 /usr/local 에 설치 되어있으며
mysql안의 lib/안에
mysql --version
으로 확인할 수 있다.
Published on: 2010. 8. 18. 10:39 by louis.dev
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON db_name.db_table TO
'user_name'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
db_name : 접근가능한 db이름
db_table : 접근가능한 db안의 테이블 이름
보통 *.* (모든DB의 모든 테이블에 접근 허용)
db_name.* (선택된 DB의 모든 테이블 접근 허용)
으로 설정.
@뒤 '%' 는 ip체크 하지 않음->즉 모든 ip를 허용, 일정한 아이피에서 들어오는 아이디만 접근을 허용하고 싶다면, localhost, ip 주소등을 적어 주면 된다.