SlideShare una empresa de Scribd logo
1 de 69
Descargar para leer sin conexión
Micro Blog Database
중앙대학교 컴퓨터공학부 데이터베이스 시스템 1조

Tumblr(텀블러) 사이트에 대한 데이터베이스 응용설계 - 중간제출
장익환(20060957) 이상태(20115695) 조동경(20112104) 이소라(20111316) 박소연(20101524)
2
INDEX
• 응용 분야
• 참조 사이트
• 응용의 기능
• ERD & Scheme
• 기능별 SQL
• UI설계
3
응용 분야
3응용 분야
• 우리팀은 웹 서비스 중 “블로그”를 응용 분야의 한 주제로 선정하였다.
• 네이버 블로그, 티스토리, 이글루스 등 수 많은 블로그 플랫폼 중에 이러한 방대한 기능을 배제하고, 기
본적인 블로그의 기능인 “포스팅” 기능을 세분화하여 여기에 추가적으로 소셜 네트워크 기능(SNS)을
제공하는 응용 분야를 생각하였다.
• 본 응용분야는 기본적인 사용자 처리(회원가입,로그인 등)의 기능과 블로깅(글, 그림, 오디오, 비디오)
기능, 그리고 추가적으로 SNS기능의 일부인 친구관리 및 타임라인, 채팅등의 기능을 처리한다.
• 추가적으로 사용자들이 자신의 블로그를 꾸밀 수 있는 기능과 스킨을 사고팔 수 있는 마켓플레이스를
처리한다.
5
참조 사이트
참조 사이트
텀블러(tumblr)는 사용자들이 문자, 그림,
영상, 링크, 인용, 소리를 그들의 조그마한
텀블로그에 게재할 수 있게 도와 주는 마이크
로블로그 플랫폼이자 웹사이트이다. 
!
사용자들은 다른 사용자를 팔로우(follow)
할 수 있고, 또한 블로그를 꾸밀 수 있다. 사
용자는 또한 자신이 직접 스킨을 제작하고 판
매할 수 있는 마켓 플레이스를 갖추고 있다.
www.tumblr.com
6
7
응용의 기능
응용의 기능
•텀블러 응용 기능
텀블러 DB
포스팅
팔로잉
친구 관리
타임 라인
글 쓰기, 수정, 삭제
글/사진/비디오/오디오
…
스킨
스킨 구매
스킨 제작
블로그 회원관리
계정
8
9
ERD & Scheme
ERD 테이블 10
블로그
사용자
포스트
테마
ERD 테이블 11
•사용자
Table Attributes
TBL_USER
사용자SEQ(PK,AI), 사용자ID, 비밀번호, 이메일, 가입일자,사 용
자프로필사진URL,상태(0:탈퇴 1:가입 2:일시정지), 탈퇴일자, 정
보수정일자, 사용언어, 사용 포스팅 툴
TBL_FRIENDS 친구목록SEQ(PK,AI), 친구 SEQ(FK), 사용자 SEQ(FK)
TBL_BUY_LIST
구매목록SEQ(PK,AI), 구매한사용자SEQ(FK), 구매한 테마
SEQ(FK), 구매일자, 구매방법
TBL_LIKE_LIST
좋아요목록 SEQ(PK,AI), 좋아요 일자, 좋아요한 포스트
SEQ(FK), 좋아요한 사용자 SEQ(FK)
ERD 테이블 12
•블로그
Table Attributes
TBL_BLOG 블로그SEQ(PK,AI), 블로그 제목, 만든이 ID(FK), URL, 블로그 설명, 작성일자, 방문자
TBL_BLOG_OPTION 블로그 옵션 SEQ(PK,AI), 미리보기옵션, 페이지당 포스트갯수, 텀블러 공유 옵션, 모바일 레이아웃 옵션, 새창으로 옵션
TBL_BLOG_VIEW_OPTION 블로그 보기 옵션 SEQ(PK,AI), 작은 레이아웃 옵션, 빨간배경 옵션, 파란배경 옵션, 칼라 상단바 옵션, 날짜숨기기 옵션, 배경숨기기 옵션, 탭 숨기기
옵션, 노트 숨기기 옵션, 동적크기 옵션, 무한스크롤 옵션, 소셜링크버튼 없애기 옵션
TBL_BLOG_SOCIAL 블로그 소셜 SEQ(PK,AI), Github URL, 비핸스 URL, 포스퀘어 URL, 라스트FM URL, 구글분석도구 URL, 트위터 URL, 페이스북 URL, 드리블
URL, 플리커 URL, 스카이프 URL, 데비안아트 URL, 비메오 URL, 디스쿼스 URL
ERD 테이블 13
•포스트
Table Attributes
TBL_POSTS
포스팅SEQ(PK,AI), 블로그 SEQ(FK), 포스트 타입(0 : 글 1 : 사진 2 :
인용구 3 : 링크 4 : 채팅 5 : 오디오 6 : 동영상), 작성일, 수정일, 작성자IP,
사용자임의URL, 옵션1, 출처URL, 조회수, 라이크한 수
TBL_TAGS 태그SEQ(PK,AI), 포스트SEQ(fk), 태그이름
TBL_POST_WRITIN
GS
포스팅 SEQ(PK,FK), 제목, 내용
TBL_POST_IMAGE 포스팅 SEQ(PK,FK), 내용
TBL_POST_IMAGE
_LIST 포스팅 SEQ(PK,FK), 내용, URL
TBL_POST_AUDIO 포스팅 SEQ(PK,FK), URL
TBL_POST_VIDEO 포스팅 SEQ(PK,FK), URL, 내용
TBL_POST_CHAT 포스팅 SEQ(PK,FK), 제목, 질문내용
TBL_POST_LINK 포스팅 SEQ(PK,FK), URL, 제목, 내용
TBL_POST_QUOTE 포스팅 SEQ(PK,FK), 격언내용, 출처
ERD 테이블 14
•테마
Table Attributes
TBL_THEME 테마SEQ(PK,AI), 제작자 유저 SEQ(FK), 제목, 요약, 내용, 소스코드, 섬네일URL, 유/무료 옵션, 가격, 카테고리 SEQ(FK), 뷰카운트, 판매숫자
TBL_THEME_SCREENSHOT 스크린샷 SEQ(PK,AI), 테마SEQ(FK), 스크린샷 URL
TBL_CATEGORIES 카테고리 SEQ(PK,AI), 카테고리명
15
기능별 SQL
기능별 SQL
•사용자 테이블 생성(TBL_USER)
CREATE TABLE `TBL_USER` (

`SEQ` INT(11) NOT NULL,

`USER_ID` VARCHAR(20) NOT NULL,

`PASSWORD` VARCHAR(20) NOT NULL,

`EMAIL` VARCHAR(100) NOT NULL,

`USER_STATUS_SEQ` INT(11) NOT NULL,

`USER_NAME` VARCHAR(20) NOT NULL,

`JOIN_DATE` DATETIME NOT NULL,

`USER_PROFILE_URL` VARCHAR(256) NULL DEFAULT NULL,

`STATUS` INT(11) NULL DEFAULT NULL COMMENT '0 : 탈퇴 1 : 가입',

`DROP_DATE` DATE NULL DEFAULT NULL,

`MODIFY_DATE` DATE NULL DEFAULT NULL,

`LANGUAGE` VARCHAR(512) NOT NULL,

`IS_EDIT_TOOL` VARCHAR(512) NOT NULL,

PRIMARY KEY (`SEQ`))

16
기능별 SQL
•블로그 테이블 생성(TBL_BLOG)
CREATE TABLE `TBL_BLOG` (

`SEQ` INT(11) NOT NULL,

`BLOG_TITLE` VARCHAR(512) NOT NULL,

`SEQ_USER` INT(11) NOT NULL,

`URL` VARCHAR(512) NOT NULL,

`BLOG_DETAIL` VARCHAR(2048) NULL DEFAULT NULL,

`CREATE_DATE` DATETIME NOT NULL DEFAULT getdate(),

`HIT_VISITOR` INT(11) NULL,

PRIMARY KEY (`SEQ`),

INDEX `tbl_user_tbl_blog_fk` (`SEQ_USER` ASC),

CONSTRAINT `tbl_user_tbl_blog_fk`

FOREIGN KEY (`SEQ_USER`)

REFERENCES `mydb`.`TBL_USER` (`SEQ`)

ON DELETE CASCADE

ON UPDATE CASCADE)
17
기능별 SQL
•포스팅 테이블 생성(TBL_POSTS)
CREATE TABLE `TBL_POSTS` (

`SEQ` int(11) NOT NULL,

`SEQ_BLOG` int(11) NOT NULL,

`POST_TYPE` int(11) DEFAULT NULL COMMENT '1 : 글 2 : 그림 3 : 오디오 4 : 비디오 5 : 인용구',

`CREATE_DATE` datetime NOT NULL,

`MODIFY_DATE` date DEFAULT NULL,

`WRITER_IP` varchar(128) DEFAULT NULL,

`CUSTOM_URL` varchar(256) DEFAULT NULL,

`OPT1` int(11) DEFAULT NULL COMMENT '1 : 허용 0 : 불가',

`REFERENCE_URL` varchar(256) DEFAULT NULL,

`HIT_VIEWER` int(11) NOT NULL,

`HIT_LIKE` int(11) NOT NULL,

PRIMARY KEY (`SEQ`),

KEY `tbl_blog_tbl_posts_fk` (`SEQ_BLOG`),

CONSTRAINT `tbl_blog_tbl_posts_fk` FOREIGN KEY (`SEQ_BLOG`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE 

ASCADE)
18
기능별 SQL
•테마 테이블 생성(TBL_THEME)
CREATE TABLE `TBL_THEME` (

`SEQ` int(11) NOT NULL,

`SEQ_USER` int(11) NOT NULL,

`TITLE` varchar(2048) NOT NULL,

`SUMMARY` varchar(2048) NOT NULL,

`DETAIL` varchar(2048) NOT NULL,

`SOURCE_CODE` varchar(4086) NOT NULL,

`THUMBNAIL_URL` varchar(512) NOT NULL,

`OPT_FREE_OR_PAID` tinyint(1) DEFAULT NULL COMMENT '0 : 무료 1 : 유료',

`PRICE` int(11) NOT NULL DEFAULT '0',

`SEQ_CATEGORY` int(11) NOT NULL,

`HIT_VIEW` int(11) NOT NULL DEFAULT '0',

`HIT_SELL` int(11) NOT NULL,

PRIMARY KEY (`SEQ`),

KEY `tbl_user_tbl_theme_fk` (`SEQ_USER`),

KEY `fk_TBL_THEME_TBL_CATEGORIES1_idx` (`SEQ_CATEGORY`),

CONSTRAINT `tbl_user_tbl_theme_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_TBL_THEME_TBL_CATEGORIES1` FOREIGN KEY (`SEQ_CATEGORY`) REFERENCES `TBL_CATEGORIES` (`SEQ`) ON DELETE NO ACTION
ON UPDATE NO ACTION)
19
기능별 SQL
•블로그 옵션 테이블 생성(TBL_BLOG_OPTION)
CREATE TABLE `TBL_BLOG_OPTION` (

`SEQ` int(11) NOT NULL,

`OPT_PRE_VIEW` tinyint(1) NOT NULL DEFAULT '0',

`NO_POST_BY_PAGE` int(11) NOT NULL DEFAULT '20',

`OPT_SHARE_TUMBLR` tinyint(1) NOT NULL,

`OPT_IS_USE_MOBILE_LAYOUT` tinyint(1) NOT NULL DEFAULT '0',

`OPT_NEW_LINK` tinyint(1) NOT NULL DEFAULT '0',

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_blog_tbl_blog_option_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)
20
기능별 SQL
•블로그 옵션 테이블 생성(TBL_BLOG_OPTION)
CREATE TABLE `TBL_BLOG_SOCIAL` (

`SEQ` int(11) NOT NULL,

`GITHUB` varchar(256),

`BEHANCE` varchar(256),

`FOURSQUARE` varchar(256),

`LAST_FM` varchar(256),

`GOOGLE_ANALYTICS_ID` varchar(256),

`TWITTER` varchar(256),

`FACEBOOK` varchar(256),

`DRIBBLE` varchar(256),

`FLICKR` varchar(256),

`SKYPE` varchar(256),

`DEVIANART` varchar(256),

`VIMEO` varchar(256),

`DISQUS` varchar(256),

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_blog_tbl_blog_social_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)

21
기능별 SQL
•블로그 뷰 옵션 테이블 생성(TBL_VIEW_OPTION)
CREATE TABLE `TBL_BLOG_VIEW_OPT` (

`SEQ` int(11) NOT NULL,

`OPT_SMALLER_NAV_FOR_PAGES` tinyint(1) NOT NULL DEFAULT '0',

`OPT_RED_BACKGROUND` tinyint(1) NOT NULL DEFAULT '0',

`OPT_BLUE_BACKGROUND` tinyint(1) NOT NULL DEFAULT '0',

`OPT_HIDE_COLORED_TOP_BAR` tinyint(1) NOT NULL DEFAULT '0',

`HIDE_DATE` tinyint(1) NOT NULL DEFAULT '0',

`HIDE_BACKGROUND_TEXTURE` tinyint(1) NOT NULL DEFAULT '0',

`HIDE_TABS` tinyint(1) NOT NULL DEFAULT '0',

`HIDE_NOTES` tinyint(1) NOT NULL DEFAULT '0',

`ALIGN_NAVIGATION_WITH_DESCRIPTION` tinyint(1) NOT NULL DEFAULT '0',

`INFINITE_SCROLL` tinyint(1) NOT NULL DEFAULT '0',

`HIDE_SOCIAL_BUTTON` tinyint(1) NOT NULL DEFAULT '0',

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_blog_tbl_blog_view_opt_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)

22
기능별 SQL
•카테고리 테이블 생성(TBL_CATEGORIES)
CREATE TABLE `TBL_CATEGORIES` (

`SEQ` int(11) NOT NULL,

`NAME` varchar(256) NOT NULL,

PRIMARY KEY (`SEQ`)

)
23
기능별 SQL
•친구목록 테이블 생성(TBL_FRIENDS)
CREATE TABLE `TBL_FRIENDS` (

`SEQ` int(11) NOT NULL,

`SEQ_FRIEND` int(11) NOT NULL,

`SEQ_USER` int(11) NOT NULL,

PRIMARY KEY (`SEQ`),

KEY `tbl_user_tbl_friends_fk` (`SEQ_USER`),

KEY `tbl_user_tbl_friends_fk1` (`SEQ_FRIEND`),

CONSTRAINT `tbl_user_tbl_friends_fk1` FOREIGN KEY (`SEQ_FRIEND`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT `tbl_user_tbl_friends_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
24
기능별 SQL
•포스팅 테이블 생성(TBL_POSTS)
CREATE TABLE `TBL_POSTS` (

`SEQ` int(11) NOT NULL, `SEQ_BLOG` int(11) NOT NULL,

`POST_TYPE` int(11) DEFAULT NULL COMMENT '1 : 글 2 : 그림 3 : 오디오 4 : 비디오 5 : 인용구’,

`CREATE_DATE` datetime NOT NULL,

`MODIFY_DATE` date DEFAULT NULL,

`WRITER_IP` varchar(128) DEFAULT NULL,

`CUSTOM_URL` varchar(256) DEFAULT NULL,

`OPT1` int(11) DEFAULT NULL COMMENT '1 : 허용 0 : 불가’,

`REFERENCE_URL` varchar(256) DEFAULT NULL,

`HIT_VIEWER` int(11) NOT NULL,

`HIT_LIKE` int(11) NOT NULL,

PRIMARY KEY (`SEQ`),

KEY `tbl_blog_tbl_posts_fk` (`SEQ_BLOG`),

CONSTRAINT `tbl_blog_tbl_posts_fk` FOREIGN KEY (`SEQ_BLOG`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
25
기능별 SQL
•태그 테이블 생성(TBL_TAGS)
CREATE TABLE `TBL_TAGS` (

`SEQ` int(11) NOT NULL,

`SEQ_POST` int(11) NOT NULL,

`TAG_NAME` varchar(256) NOT NULL,

PRIMARY KEY (`SEQ`),

KEY `tbl_posts_tbl_tags_fk` (`SEQ_POST`),

CONSTRAINT `tbl_posts_tbl_tags_fk` FOREIGN KEY (`SEQ_POST`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
26
기능별 SQL
•포스팅 – 글 테이블 생성(TBL_POST_WRITINGS)
CREATE TABLE `TBL_POST_WRITINGS` (

`SEQ_POST` int(11) NOT NULL,

`TITLE` varchar(512) NOT NULL,

`CONTENT` varchar(2048) NOT NULL,

PRIMARY KEY (`SEQ_POST`),

CONSTRAINT `tbl_posts_tbl_writings_fk` FOREIGN KEY (`SEQ_POST`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
27
기능별 SQL
•포스팅 – 이미지 목록 테이블 생성(TBL_POST_IMAGE_LIST)
CREATE TABLE `TBL_POST_IMAGE_LIST` (

`SEQ` int(11) NOT NULL,

`SEQ_IMAGE` int(11) NOT NULL,

`IMG_URL` varchar(45) NOT NULL,

PRIMARY KEY (`SEQ`),

KEY `tbl_post_image_tbl_post_image_list_fk` (`SEQ_IMAGE`),

CONSTRAINT `tbl_post_image_tbl_post_image_list_fk` FOREIGN KEY (`SEQ_IMAGE`) REFERENCES `TBL_POST_IMAGE` (`SEQ_POST`) ON DELETE CASCADE
ON UPDATE CASCADE

)!
28
기능별 SQL
•포스팅 – 인용구 테이블 생성(TBL_POST_QUOTE)
CREATE TABLE `TBL_POST_QUOTE` (

`SEQ` int(11) NOT NULL,

`QUOTE` varchar(2048) NOT NULL,

`REFERENCE` varchar(2048) NOT NULL,

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_posts_tbl_quote_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
29
기능별 SQL
•포스팅 – 링크 테이블 생성(TBL_POST_LINK)
CREATE TABLE `TBL_POST_LINK` (

`SEQ` int(11) NOT NULL,

`URL` varchar(512) NOT NULL,

`TITLE` varchar(512) NOT NULL,

`DETAIL` varchar(2048) NOT NULL,

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_posts_tbl_post_link_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
30
기능별 SQL
•포스팅 – 채팅 테이블 생성(TBL_POST_CHAT)
CREATE TABLE `TBL_POST_CHAT` (

`SEQ` int(11) NOT NULL,

`TITLE` varchar(256) NOT NULL,

`QUESTION` varchar(2048) NOT NULL,

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_posts_tbl_post_chat_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
31
기능별 SQL
•포스팅 – 오디오 테이블 생성 (TBL_POST_AUDIO)
CREATE TABLE `TBL_POST_AUDIO` (

`SEQ` int(11) NOT NULL,

`URL` varchar(1024) NOT NULL,

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_posts_tbl_post_audio_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
32
기능별 SQL
•포스팅 - 비디오 테이블 생성 (TBL_POST_VIDEO)
CREATE TABLE `TBL_POST_VIDEO` (

`SEQ` int(11) NOT NULL,

`URL` varchar(1024) NOT NULL,

`CONTENT` varchar(2048) NOT NULL,

PRIMARY KEY (`SEQ`),

CONSTRAINT `tbl_posts_tbl_post_video_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE

)!
33
기능별 SQL
•테마 테이블 생성 (TBL_THEME)
CREATE TABLE `TBL_THEME` (!
`SEQ` int(11) NOT NULL,!
`SEQ_USER` int(11) NOT NULL,!
`TITLE` varchar(2048) NOT NULL,!
`SUMMARY` varchar(2048) NOT NULL,!
`DETAIL` varchar(2048) NOT NULL,!
`SOURCE_CODE` varchar(4086) NOT NULL,!
`THUMBNAIL_URL` varchar(512) NOT NULL,!
`OPT_FREE_OR_PAID` tinyint(1) DEFAULT NULL COMMENT '0 : 무료 1 : 유료',!
`PRICE` int(11) NOT NULL DEFAULT '0',!
`SEQ_CATEGORY` int(11) NOT NULL,!
`HIT_VIEW` int(11) NOT NULL DEFAULT '0',!
`HIT_SELL` int(11) NOT NULL,!
PRIMARY KEY (`SEQ`),!
KEY `tbl_user_tbl_theme_fk` (`SEQ_USER`),!
KEY `fk_TBL_THEME_TBL_CATEGORIES1_idx` (`SEQ_CATEGORY`),!
CONSTRAINT `tbl_user_tbl_theme_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE,!
CONSTRAINT `fk_TBL_THEME_TBL_CATEGORIES1` FOREIGN KEY (`SEQ_CATEGORY`) REFERENCES `TBL_CATEGORIES` (`SEQ`) ON DELETE NO ACTION
ON UPDATE NO ACTION!
)
34
기능별 SQL
•테마 스크린샷 테이블 생성 (TBL_THEME_SCREENSHOT)
CREATE TABLE `TBL_THEME_SCREENSHOT` (!
`SEQ` int(11) NOT NULL,!
`SEQ_THEME` int(11) NOT NULL,!
`SCREENSHOT_URL` varchar(512) NOT NULL,!
PRIMARY KEY (`SEQ`),!
KEY `tbl_theme_tbl_theme_screenshot_fk` (`SEQ_THEME`),!
CONSTRAINT `tbl_theme_tbl_theme_screenshot_fk` FOREIGN KEY (`SEQ_THEME`) REFERENCES `TBL_THEME` (`SEQ`) ON DELETE CASCADE ON UPDATE
CASCADE!
)
35
기능별 SQL
•새 사용자 추가
INSERT INTO `tbl_user` (`SEQ`, `USER_ID`, `PASSWORD`, `EMAIL`, `USER_NAME`,
`JOIN_DATE`, `USER_PROFILE_URL`, `STATUS`, `DROP_DATE`, `MODIFY_DATE`,
`LANGUAGE`, `IS_EDIT_TOOL`, `TBL_LIKE_LIST_SEQ`)!
VALUES!
! (4, 'lee', '1231', 'lee@naver.com', '이정훈', now(), 'www.haha.com/het.png', 1, NULL,
NULL, 'KOR', '2', 0);!
36
기능별 SQL
•회원 정지처리 & 탈퇴
update TBL_USER set state = 2 where user_id = ‘lee’ ‘ 회원정지!
!
update TBL_USER set state = 0 where user_id = ‘lee' ‘ 탈퇴
37
* 사용자의 경우 state 1이 회원가입 상태, 0이 탈퇴상태, 2가 회원정지 상태
기능별 SQL
•친구 추가
INSERT INTO `tbl_friends` (`SEQ`,`SEQ_FRIEND`,`SEQ_USER`)

VALUES (0, !
(select SEQ from tbl_user where user_name=‘장익환’ limit 1), !
(select SEQ from tbl_user where user_name=‘강수현’ limit 1)),!
(0, !
(select SEQ from tbl_user where user_name=‘장익환’ limit 1), !
(select SEQ from tbl_user where user_name=‘황정윤’ limit 1));
38
* 위의 경우는 이름이 장익환인 회원에게 이름이 강수현, 황정윤 인 친구를 추가하는 질의
기능별 SQL
•블로그 만들기(기본옵션)
INSERT INTO `tbl_blog` (`SEQ`, `BLOG_TITLE`, `SEQ_USER`, `URL`,
`BLOG_DETAIL`, `CREATE_DATE`, `HIT_VISITOR`)!
VALUES!
! (3, '강's blog', 3, 'kang.soo', '깡수의 블로그', '2013-12-02 00:00:00', 12423424);!
39
기능별 SQL
•새 포스트 등록(글)
INSERT INTO `tbl_posts` (`SEQ`, `SEQ_BLOG`, `POST_TYPE`, `CREATE_DATE`,
`MODIFY_DATE`, `WRITER_IP`, `CUSTOM_URL`, `OPT1`, `REFERENCE_URL`,
`HIT_VIEWER`, `HIT_LIKE`)!
VALUES!
! (0, 0, 0, '2013-03-02 00:00:00', NULL, '211.238.145.12', NULL, NULL, NULL, 1234, 123);!
!
INSERT INTO `tbl_post_writings` (`SEQ_POST`, `TITLE`, `CONTENT`)!
VALUES!
! (0, '오늘 일기', '오늘 나는 뭐하고 놀까 싶었다.<br /> 그러다 보니 어느덧 시간은 다되고...<br/> 허허허
허...');!
40
기능별 SQL
•모든 회원의 등록된 글을 DESC순서로 가져오는 질의
select!
! A.SEQ,A.POST_TYPE ,(case A.POST_TYPE !
! ! when 0 then (select title from TBL_POST_WRITINGS where SEQ = A.SEQ)!
! ! when 1 then (select content from TBL_POST_IMAGE where SEQ = A.SEQ)!
! ! when 2 then (select quote from TBL_POST_QUOTE where SEQ = A.SEQ)!
! ! when 3 then (select title from TBL_POST_LINK where SEQ = A.SEQ)!
! ! when 4 then (select title from TBL_POST_CHAT where SEQ = A.SEQ)!
! ! when 5 then (select url from TBL_POST_AUDIO where SEQ = A.SEQ)!
! ! when 6 then (select content from TBL_POST_VIDEO where SEQ = A.SEQ)!
! end) AS TITLE,A.CREATE_DATE,C.USER_NAME,A.HIT_VIEWER!
from!
! TBL_POSTS A,!
! TBL_BLOG B,!
! TBL_USER C!
where!
! A.SEQ_BLOG = B.SEQ!
! and B.SEQ_USER = C.SEQ!
order by A.HIT_VIEWER desc
41
기능별 SQL
•내 친구가 등록한 글 목록
select !
! (select user_name from tbl_user where seq = B.seq_user) AS USER_NAME,

! A.CREATE_DATE,!
! A.HIT_VIEWER,!
! A.HIT_LIKE 

from !
! tbl_posts A,!
! tbl_blog B!
where !
! A.`SEQ_BLOG` = B.`SEQ` !
! and B.`SEQ_USER` in !
! ! (select SEQ_FRIEND from tbl_friends !
! ! where SEQ_USER = !
! ! ! (select user_name from tbl_user where email='matthew.chang@me.com’)!
! ! )
42
기능별 SQL
•내 친구가 등록한 글 중 가장 Like가 많은 글
select !
! (select user_name from tbl_user where seq = B.seq_user) AS USER_NAME,

! A.CREATE_DATE,!
! A.HIT_VIEWER,!
! A.HIT_LIKE 

from !
! tbl_posts A,!
! tbl_blog B!
where !
! A.`SEQ_BLOG` = B.`SEQ` !
! and B.`SEQ_USER` in !
! ! (select SEQ_FRIEND from tbl_friends !
! ! where SEQ_USER = !
! ! ! (select user_name from tbl_user where email='matthew.chang@me.com’)!
! ! )!
order by A.HIT_LIKE DESC LIMIT 1
43
기능별 SQL
•날짜별 등록된 포스트 갯수
select!
! C.CREATE_DATE,!
! (SELECT COUNT(*) FROM tbl_posts where create_date = C.CREATE_DATE) AS
NUM_WRITING_POST!
from!
! tbl_user A,!
! tbl_blog B,!
! tbl_posts C!
where!
! A.SEQ = B.SEQ_USER!
! and B.SEQ = C.SEQ_BLOG!
group by C.CREATE_DATE
44
기능별 SQL
•일자별 가입자 숫자
select!
! A.JOIN_DATE,!
! (SELECT COUNT(*) FROM tbl_user where join_date = A.JOIN_DATE) AS NUM_JOIN_USER!
from!
! tbl_user A!
group by A.JOIN_DATE
45
기능별 SQL
•사용자별 방문자 순위
select!
! A.user_name,!
! B.BLOG_TITLE,!
! B.HIT_VISITOR!
from!
! tbl_user A,!
! tbl_blog B!
where!
! A.SEQ = B.SEQ_USER!
order by B.`HIT_VISITOR` desc
46
기능별 SQL
•방문자가 1000명 이상인 사용자의 블로그
select!
! A.user_name,!
! B.BLOG_TITLE,!
! B.HIT_VISITOR!
from!
! tbl_user A,!
! tbl_blog B!
where!
! A.SEQ = B.SEQ_USER!
! and B.HIT_VISITOR > 1000
47
기능별 SQL
•카테고리가 ‘벤처 기업’ 인 테마 목록
select!
! *!
from!
! tbl_theme A,!
! tbl_user B,!
! tbl_categories C!
where!
! A.SEQ_CATEGORY = C.SEQ!
! and A.SEQ_USER = B.SEQ!
! and C.name = '벤처 기업'
48
49
UI 설계
메뉴 구조도 50
Tumblr'
회
원
가
입'
Dashboard
(로그인후)'
Posts'
글작성'
My'
Timeline'
Follower'
친구목록'
친구추
가/삭제'
활동'
블로그 꾸
미기'
테마선택' 테마옵션'
새
블로
그
만들
기'
설정'
계정설정'
테마'
카테
고리
별
보기'
인기
테마'
테마
등록'
화면 설계
•회원 가입
51
회원가입
이메일 주소
비밀번호
다른 사람이 나를 검색할 수 있도록 허용
비밀번호 확인
포스팅 편집도구 리치 텍스트 편집기 일반 텍스트/HTML 마크다운
언어 한국어
회원 가입 취소
화면 설계
•Dashboard
52
Tumblr Dashboard
|
테마
|
설정
포스팅
등록 글 사진 인용구 링크 오디오 비디오
타임라인
Posts
Followers
활동
블로그
꾸미기
새블로그
장익환(matthew@me.com)
님이
2014-05-08
등록한
사진
!
오늘은
기분이

Más contenido relacionado

La actualidad más candente

CSSA TOPICS (1)
CSSA TOPICS (1)CSSA TOPICS (1)
CSSA TOPICS (1)
Ashock Roy
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
BOAZ Bigdata
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
NAVER Engineering
 

La actualidad más candente (20)

CSSA TOPICS (1)
CSSA TOPICS (1)CSSA TOPICS (1)
CSSA TOPICS (1)
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [카페 어디가?팀] : 카페 및 장소 추천 서비스
 
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [#인스타툰 팀] : 해시태그 기반 인스타툰 추천 챗봇
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [#인스타툰 팀] : 해시태그 기반 인스타툰 추천 챗봇제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [#인스타툰 팀] : 해시태그 기반 인스타툰 추천 챗봇
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [#인스타툰 팀] : 해시태그 기반 인스타툰 추천 챗봇
 
Lazy vs. Eager Loading Strategies in JPA 2.1
Lazy vs. Eager Loading Strategies in JPA 2.1Lazy vs. Eager Loading Strategies in JPA 2.1
Lazy vs. Eager Loading Strategies in JPA 2.1
 
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Hands-on 팀] : 수어 번역을 통한 위험 상황 속 의사소통 시스템 구축
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Hands-on 팀] : 수어 번역을 통한 위험 상황 속 의사소통 시스템 구축제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Hands-on 팀] : 수어 번역을 통한 위험 상황 속 의사소통 시스템 구축
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Hands-on 팀] : 수어 번역을 통한 위험 상황 속 의사소통 시스템 구축
 
Workshop 22: React-Redux Middleware
Workshop 22: React-Redux MiddlewareWorkshop 22: React-Redux Middleware
Workshop 22: React-Redux Middleware
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천 제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석
 
Rich domain model
Rich domain modelRich domain model
Rich domain model
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
 
서비스중인 게임 DB 설계 (쿠키런 편)
서비스중인 게임 DB 설계 (쿠키런 편)서비스중인 게임 DB 설계 (쿠키런 편)
서비스중인 게임 DB 설계 (쿠키런 편)
 
Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2 Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2
 

Similar a Db설계 프로젝트 1조 _중간제출

Html5&css 3장
Html5&css 3장Html5&css 3장
Html5&css 3장
홍준 김
 

Similar a Db설계 프로젝트 1조 _중간제출 (14)

tumblr.com 에 대한 DB구조 분석
tumblr.com 에 대한 DB구조 분석tumblr.com 에 대한 DB구조 분석
tumblr.com 에 대한 DB구조 분석
 
Analyze of Tumblr.com
Analyze of Tumblr.comAnalyze of Tumblr.com
Analyze of Tumblr.com
 
Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료
 
정해균 포트폴리오
정해균 포트폴리오정해균 포트폴리오
정해균 포트폴리오
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
SQLite Example
SQLite ExampleSQLite Example
SQLite Example
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
 
Django - CRUD 기능 구현
Django - CRUD 기능 구현Django - CRUD 기능 구현
Django - CRUD 기능 구현
 
2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
SJBoard Project Portfolio
SJBoard Project PortfolioSJBoard Project Portfolio
SJBoard Project Portfolio
 
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time DatabaseFirebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
 
Html5&css 3장
Html5&css 3장Html5&css 3장
Html5&css 3장
 

Más de Matthew Chang

Image Compression Storage Policy for Openstack Swift
Image Compression Storage Policy for Openstack SwiftImage Compression Storage Policy for Openstack Swift
Image Compression Storage Policy for Openstack Swift
Matthew Chang
 
A new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr codeA new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr code
Matthew Chang
 
​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료
Matthew Chang
 

Más de Matthew Chang (20)

Research and Analysis of SSH
Research and Analysis of SSH Research and Analysis of SSH
Research and Analysis of SSH
 
Digital Certified Mail (PPT)
Digital Certified Mail (PPT)Digital Certified Mail (PPT)
Digital Certified Mail (PPT)
 
Digital Certified Mail
Digital Certified MailDigital Certified Mail
Digital Certified Mail
 
Twitter Trend Analyzer
Twitter Trend AnalyzerTwitter Trend Analyzer
Twitter Trend Analyzer
 
The implementation of Banker's algorithm, data structure and its parser
The implementation of Banker's algorithm, data structure and its parserThe implementation of Banker's algorithm, data structure and its parser
The implementation of Banker's algorithm, data structure and its parser
 
Image Compression Storage Policy for Openstack Swift
Image Compression Storage Policy for Openstack SwiftImage Compression Storage Policy for Openstack Swift
Image Compression Storage Policy for Openstack Swift
 
Urhyme introduction
Urhyme introductionUrhyme introduction
Urhyme introduction
 
SDN Project PPT
SDN Project PPTSDN Project PPT
SDN Project PPT
 
Project Avalon
Project AvalonProject Avalon
Project Avalon
 
A new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr codeA new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr code
 
Logic Circuit Project Final Presentation
Logic Circuit Project Final PresentationLogic Circuit Project Final Presentation
Logic Circuit Project Final Presentation
 
Programming Language Final PPT
Programming Language Final PPTProgramming Language Final PPT
Programming Language Final PPT
 
Profile_ Ikwhan chang
Profile_ Ikwhan changProfile_ Ikwhan chang
Profile_ Ikwhan chang
 
모바일 앱 개발 최종 발표 Proposal
모바일 앱 개발 최종 발표 Proposal모바일 앱 개발 최종 발표 Proposal
모바일 앱 개발 최종 발표 Proposal
 
Capstone Project Final Presentation
Capstone Project Final PresentationCapstone Project Final Presentation
Capstone Project Final Presentation
 
Project Avalon Online(Game) Final Report
Project Avalon Online(Game) Final ReportProject Avalon Online(Game) Final Report
Project Avalon Online(Game) Final Report
 
Project NGX - Proposal
Project NGX - ProposalProject NGX - Proposal
Project NGX - Proposal
 
Report : Android Simple Bug Catch Game(Korean)
Report : Android Simple Bug Catch Game(Korean)Report : Android Simple Bug Catch Game(Korean)
Report : Android Simple Bug Catch Game(Korean)
 
Capstone Project Last Demonstration
Capstone Project Last DemonstrationCapstone Project Last Demonstration
Capstone Project Last Demonstration
 
​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료
 

Último

Último (7)

JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 

Db설계 프로젝트 1조 _중간제출

  • 1. Micro Blog Database 중앙대학교 컴퓨터공학부 데이터베이스 시스템 1조
 Tumblr(텀블러) 사이트에 대한 데이터베이스 응용설계 - 중간제출 장익환(20060957) 이상태(20115695) 조동경(20112104) 이소라(20111316) 박소연(20101524)
  • 2. 2 INDEX • 응용 분야 • 참조 사이트 • 응용의 기능 • ERD & Scheme • 기능별 SQL • UI설계
  • 4. 3응용 분야 • 우리팀은 웹 서비스 중 “블로그”를 응용 분야의 한 주제로 선정하였다. • 네이버 블로그, 티스토리, 이글루스 등 수 많은 블로그 플랫폼 중에 이러한 방대한 기능을 배제하고, 기 본적인 블로그의 기능인 “포스팅” 기능을 세분화하여 여기에 추가적으로 소셜 네트워크 기능(SNS)을 제공하는 응용 분야를 생각하였다. • 본 응용분야는 기본적인 사용자 처리(회원가입,로그인 등)의 기능과 블로깅(글, 그림, 오디오, 비디오) 기능, 그리고 추가적으로 SNS기능의 일부인 친구관리 및 타임라인, 채팅등의 기능을 처리한다. • 추가적으로 사용자들이 자신의 블로그를 꾸밀 수 있는 기능과 스킨을 사고팔 수 있는 마켓플레이스를 처리한다.
  • 6. 참조 사이트 텀블러(tumblr)는 사용자들이 문자, 그림, 영상, 링크, 인용, 소리를 그들의 조그마한 텀블로그에 게재할 수 있게 도와 주는 마이크 로블로그 플랫폼이자 웹사이트이다. ! 사용자들은 다른 사용자를 팔로우(follow) 할 수 있고, 또한 블로그를 꾸밀 수 있다. 사 용자는 또한 자신이 직접 스킨을 제작하고 판 매할 수 있는 마켓 플레이스를 갖추고 있다. www.tumblr.com 6
  • 8. 응용의 기능 •텀블러 응용 기능 텀블러 DB 포스팅 팔로잉 친구 관리 타임 라인 글 쓰기, 수정, 삭제 글/사진/비디오/오디오 … 스킨 스킨 구매 스킨 제작 블로그 회원관리 계정 8
  • 11. ERD 테이블 11 •사용자 Table Attributes TBL_USER 사용자SEQ(PK,AI), 사용자ID, 비밀번호, 이메일, 가입일자,사 용 자프로필사진URL,상태(0:탈퇴 1:가입 2:일시정지), 탈퇴일자, 정 보수정일자, 사용언어, 사용 포스팅 툴 TBL_FRIENDS 친구목록SEQ(PK,AI), 친구 SEQ(FK), 사용자 SEQ(FK) TBL_BUY_LIST 구매목록SEQ(PK,AI), 구매한사용자SEQ(FK), 구매한 테마 SEQ(FK), 구매일자, 구매방법 TBL_LIKE_LIST 좋아요목록 SEQ(PK,AI), 좋아요 일자, 좋아요한 포스트 SEQ(FK), 좋아요한 사용자 SEQ(FK)
  • 12. ERD 테이블 12 •블로그 Table Attributes TBL_BLOG 블로그SEQ(PK,AI), 블로그 제목, 만든이 ID(FK), URL, 블로그 설명, 작성일자, 방문자 TBL_BLOG_OPTION 블로그 옵션 SEQ(PK,AI), 미리보기옵션, 페이지당 포스트갯수, 텀블러 공유 옵션, 모바일 레이아웃 옵션, 새창으로 옵션 TBL_BLOG_VIEW_OPTION 블로그 보기 옵션 SEQ(PK,AI), 작은 레이아웃 옵션, 빨간배경 옵션, 파란배경 옵션, 칼라 상단바 옵션, 날짜숨기기 옵션, 배경숨기기 옵션, 탭 숨기기 옵션, 노트 숨기기 옵션, 동적크기 옵션, 무한스크롤 옵션, 소셜링크버튼 없애기 옵션 TBL_BLOG_SOCIAL 블로그 소셜 SEQ(PK,AI), Github URL, 비핸스 URL, 포스퀘어 URL, 라스트FM URL, 구글분석도구 URL, 트위터 URL, 페이스북 URL, 드리블 URL, 플리커 URL, 스카이프 URL, 데비안아트 URL, 비메오 URL, 디스쿼스 URL
  • 13. ERD 테이블 13 •포스트 Table Attributes TBL_POSTS 포스팅SEQ(PK,AI), 블로그 SEQ(FK), 포스트 타입(0 : 글 1 : 사진 2 : 인용구 3 : 링크 4 : 채팅 5 : 오디오 6 : 동영상), 작성일, 수정일, 작성자IP, 사용자임의URL, 옵션1, 출처URL, 조회수, 라이크한 수 TBL_TAGS 태그SEQ(PK,AI), 포스트SEQ(fk), 태그이름 TBL_POST_WRITIN GS 포스팅 SEQ(PK,FK), 제목, 내용 TBL_POST_IMAGE 포스팅 SEQ(PK,FK), 내용 TBL_POST_IMAGE _LIST 포스팅 SEQ(PK,FK), 내용, URL TBL_POST_AUDIO 포스팅 SEQ(PK,FK), URL TBL_POST_VIDEO 포스팅 SEQ(PK,FK), URL, 내용 TBL_POST_CHAT 포스팅 SEQ(PK,FK), 제목, 질문내용 TBL_POST_LINK 포스팅 SEQ(PK,FK), URL, 제목, 내용 TBL_POST_QUOTE 포스팅 SEQ(PK,FK), 격언내용, 출처
  • 14. ERD 테이블 14 •테마 Table Attributes TBL_THEME 테마SEQ(PK,AI), 제작자 유저 SEQ(FK), 제목, 요약, 내용, 소스코드, 섬네일URL, 유/무료 옵션, 가격, 카테고리 SEQ(FK), 뷰카운트, 판매숫자 TBL_THEME_SCREENSHOT 스크린샷 SEQ(PK,AI), 테마SEQ(FK), 스크린샷 URL TBL_CATEGORIES 카테고리 SEQ(PK,AI), 카테고리명
  • 16. 기능별 SQL •사용자 테이블 생성(TBL_USER) CREATE TABLE `TBL_USER` (
 `SEQ` INT(11) NOT NULL,
 `USER_ID` VARCHAR(20) NOT NULL,
 `PASSWORD` VARCHAR(20) NOT NULL,
 `EMAIL` VARCHAR(100) NOT NULL,
 `USER_STATUS_SEQ` INT(11) NOT NULL,
 `USER_NAME` VARCHAR(20) NOT NULL,
 `JOIN_DATE` DATETIME NOT NULL,
 `USER_PROFILE_URL` VARCHAR(256) NULL DEFAULT NULL,
 `STATUS` INT(11) NULL DEFAULT NULL COMMENT '0 : 탈퇴 1 : 가입',
 `DROP_DATE` DATE NULL DEFAULT NULL,
 `MODIFY_DATE` DATE NULL DEFAULT NULL,
 `LANGUAGE` VARCHAR(512) NOT NULL,
 `IS_EDIT_TOOL` VARCHAR(512) NOT NULL,
 PRIMARY KEY (`SEQ`))
 16
  • 17. 기능별 SQL •블로그 테이블 생성(TBL_BLOG) CREATE TABLE `TBL_BLOG` (
 `SEQ` INT(11) NOT NULL,
 `BLOG_TITLE` VARCHAR(512) NOT NULL,
 `SEQ_USER` INT(11) NOT NULL,
 `URL` VARCHAR(512) NOT NULL,
 `BLOG_DETAIL` VARCHAR(2048) NULL DEFAULT NULL,
 `CREATE_DATE` DATETIME NOT NULL DEFAULT getdate(),
 `HIT_VISITOR` INT(11) NULL,
 PRIMARY KEY (`SEQ`),
 INDEX `tbl_user_tbl_blog_fk` (`SEQ_USER` ASC),
 CONSTRAINT `tbl_user_tbl_blog_fk`
 FOREIGN KEY (`SEQ_USER`)
 REFERENCES `mydb`.`TBL_USER` (`SEQ`)
 ON DELETE CASCADE
 ON UPDATE CASCADE) 17
  • 18. 기능별 SQL •포스팅 테이블 생성(TBL_POSTS) CREATE TABLE `TBL_POSTS` (
 `SEQ` int(11) NOT NULL,
 `SEQ_BLOG` int(11) NOT NULL,
 `POST_TYPE` int(11) DEFAULT NULL COMMENT '1 : 글 2 : 그림 3 : 오디오 4 : 비디오 5 : 인용구',
 `CREATE_DATE` datetime NOT NULL,
 `MODIFY_DATE` date DEFAULT NULL,
 `WRITER_IP` varchar(128) DEFAULT NULL,
 `CUSTOM_URL` varchar(256) DEFAULT NULL,
 `OPT1` int(11) DEFAULT NULL COMMENT '1 : 허용 0 : 불가',
 `REFERENCE_URL` varchar(256) DEFAULT NULL,
 `HIT_VIEWER` int(11) NOT NULL,
 `HIT_LIKE` int(11) NOT NULL,
 PRIMARY KEY (`SEQ`),
 KEY `tbl_blog_tbl_posts_fk` (`SEQ_BLOG`),
 CONSTRAINT `tbl_blog_tbl_posts_fk` FOREIGN KEY (`SEQ_BLOG`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE 
 ASCADE) 18
  • 19. 기능별 SQL •테마 테이블 생성(TBL_THEME) CREATE TABLE `TBL_THEME` (
 `SEQ` int(11) NOT NULL,
 `SEQ_USER` int(11) NOT NULL,
 `TITLE` varchar(2048) NOT NULL,
 `SUMMARY` varchar(2048) NOT NULL,
 `DETAIL` varchar(2048) NOT NULL,
 `SOURCE_CODE` varchar(4086) NOT NULL,
 `THUMBNAIL_URL` varchar(512) NOT NULL,
 `OPT_FREE_OR_PAID` tinyint(1) DEFAULT NULL COMMENT '0 : 무료 1 : 유료',
 `PRICE` int(11) NOT NULL DEFAULT '0',
 `SEQ_CATEGORY` int(11) NOT NULL,
 `HIT_VIEW` int(11) NOT NULL DEFAULT '0',
 `HIT_SELL` int(11) NOT NULL,
 PRIMARY KEY (`SEQ`),
 KEY `tbl_user_tbl_theme_fk` (`SEQ_USER`),
 KEY `fk_TBL_THEME_TBL_CATEGORIES1_idx` (`SEQ_CATEGORY`),
 CONSTRAINT `tbl_user_tbl_theme_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_TBL_THEME_TBL_CATEGORIES1` FOREIGN KEY (`SEQ_CATEGORY`) REFERENCES `TBL_CATEGORIES` (`SEQ`) ON DELETE NO ACTION ON UPDATE NO ACTION) 19
  • 20. 기능별 SQL •블로그 옵션 테이블 생성(TBL_BLOG_OPTION) CREATE TABLE `TBL_BLOG_OPTION` (
 `SEQ` int(11) NOT NULL,
 `OPT_PRE_VIEW` tinyint(1) NOT NULL DEFAULT '0',
 `NO_POST_BY_PAGE` int(11) NOT NULL DEFAULT '20',
 `OPT_SHARE_TUMBLR` tinyint(1) NOT NULL,
 `OPT_IS_USE_MOBILE_LAYOUT` tinyint(1) NOT NULL DEFAULT '0',
 `OPT_NEW_LINK` tinyint(1) NOT NULL DEFAULT '0',
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_blog_tbl_blog_option_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE) 20
  • 21. 기능별 SQL •블로그 옵션 테이블 생성(TBL_BLOG_OPTION) CREATE TABLE `TBL_BLOG_SOCIAL` (
 `SEQ` int(11) NOT NULL,
 `GITHUB` varchar(256),
 `BEHANCE` varchar(256),
 `FOURSQUARE` varchar(256),
 `LAST_FM` varchar(256),
 `GOOGLE_ANALYTICS_ID` varchar(256),
 `TWITTER` varchar(256),
 `FACEBOOK` varchar(256),
 `DRIBBLE` varchar(256),
 `FLICKR` varchar(256),
 `SKYPE` varchar(256),
 `DEVIANART` varchar(256),
 `VIMEO` varchar(256),
 `DISQUS` varchar(256),
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_blog_tbl_blog_social_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )
 21
  • 22. 기능별 SQL •블로그 뷰 옵션 테이블 생성(TBL_VIEW_OPTION) CREATE TABLE `TBL_BLOG_VIEW_OPT` (
 `SEQ` int(11) NOT NULL,
 `OPT_SMALLER_NAV_FOR_PAGES` tinyint(1) NOT NULL DEFAULT '0',
 `OPT_RED_BACKGROUND` tinyint(1) NOT NULL DEFAULT '0',
 `OPT_BLUE_BACKGROUND` tinyint(1) NOT NULL DEFAULT '0',
 `OPT_HIDE_COLORED_TOP_BAR` tinyint(1) NOT NULL DEFAULT '0',
 `HIDE_DATE` tinyint(1) NOT NULL DEFAULT '0',
 `HIDE_BACKGROUND_TEXTURE` tinyint(1) NOT NULL DEFAULT '0',
 `HIDE_TABS` tinyint(1) NOT NULL DEFAULT '0',
 `HIDE_NOTES` tinyint(1) NOT NULL DEFAULT '0',
 `ALIGN_NAVIGATION_WITH_DESCRIPTION` tinyint(1) NOT NULL DEFAULT '0',
 `INFINITE_SCROLL` tinyint(1) NOT NULL DEFAULT '0',
 `HIDE_SOCIAL_BUTTON` tinyint(1) NOT NULL DEFAULT '0',
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_blog_tbl_blog_view_opt_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)
 22
  • 23. 기능별 SQL •카테고리 테이블 생성(TBL_CATEGORIES) CREATE TABLE `TBL_CATEGORIES` (
 `SEQ` int(11) NOT NULL,
 `NAME` varchar(256) NOT NULL,
 PRIMARY KEY (`SEQ`)
 ) 23
  • 24. 기능별 SQL •친구목록 테이블 생성(TBL_FRIENDS) CREATE TABLE `TBL_FRIENDS` (
 `SEQ` int(11) NOT NULL,
 `SEQ_FRIEND` int(11) NOT NULL,
 `SEQ_USER` int(11) NOT NULL,
 PRIMARY KEY (`SEQ`),
 KEY `tbl_user_tbl_friends_fk` (`SEQ_USER`),
 KEY `tbl_user_tbl_friends_fk1` (`SEQ_FRIEND`),
 CONSTRAINT `tbl_user_tbl_friends_fk1` FOREIGN KEY (`SEQ_FRIEND`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `tbl_user_tbl_friends_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 24
  • 25. 기능별 SQL •포스팅 테이블 생성(TBL_POSTS) CREATE TABLE `TBL_POSTS` (
 `SEQ` int(11) NOT NULL, `SEQ_BLOG` int(11) NOT NULL,
 `POST_TYPE` int(11) DEFAULT NULL COMMENT '1 : 글 2 : 그림 3 : 오디오 4 : 비디오 5 : 인용구’,
 `CREATE_DATE` datetime NOT NULL,
 `MODIFY_DATE` date DEFAULT NULL,
 `WRITER_IP` varchar(128) DEFAULT NULL,
 `CUSTOM_URL` varchar(256) DEFAULT NULL,
 `OPT1` int(11) DEFAULT NULL COMMENT '1 : 허용 0 : 불가’,
 `REFERENCE_URL` varchar(256) DEFAULT NULL,
 `HIT_VIEWER` int(11) NOT NULL,
 `HIT_LIKE` int(11) NOT NULL,
 PRIMARY KEY (`SEQ`),
 KEY `tbl_blog_tbl_posts_fk` (`SEQ_BLOG`),
 CONSTRAINT `tbl_blog_tbl_posts_fk` FOREIGN KEY (`SEQ_BLOG`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 25
  • 26. 기능별 SQL •태그 테이블 생성(TBL_TAGS) CREATE TABLE `TBL_TAGS` (
 `SEQ` int(11) NOT NULL,
 `SEQ_POST` int(11) NOT NULL,
 `TAG_NAME` varchar(256) NOT NULL,
 PRIMARY KEY (`SEQ`),
 KEY `tbl_posts_tbl_tags_fk` (`SEQ_POST`),
 CONSTRAINT `tbl_posts_tbl_tags_fk` FOREIGN KEY (`SEQ_POST`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 26
  • 27. 기능별 SQL •포스팅 – 글 테이블 생성(TBL_POST_WRITINGS) CREATE TABLE `TBL_POST_WRITINGS` (
 `SEQ_POST` int(11) NOT NULL,
 `TITLE` varchar(512) NOT NULL,
 `CONTENT` varchar(2048) NOT NULL,
 PRIMARY KEY (`SEQ_POST`),
 CONSTRAINT `tbl_posts_tbl_writings_fk` FOREIGN KEY (`SEQ_POST`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 27
  • 28. 기능별 SQL •포스팅 – 이미지 목록 테이블 생성(TBL_POST_IMAGE_LIST) CREATE TABLE `TBL_POST_IMAGE_LIST` (
 `SEQ` int(11) NOT NULL,
 `SEQ_IMAGE` int(11) NOT NULL,
 `IMG_URL` varchar(45) NOT NULL,
 PRIMARY KEY (`SEQ`),
 KEY `tbl_post_image_tbl_post_image_list_fk` (`SEQ_IMAGE`),
 CONSTRAINT `tbl_post_image_tbl_post_image_list_fk` FOREIGN KEY (`SEQ_IMAGE`) REFERENCES `TBL_POST_IMAGE` (`SEQ_POST`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 28
  • 29. 기능별 SQL •포스팅 – 인용구 테이블 생성(TBL_POST_QUOTE) CREATE TABLE `TBL_POST_QUOTE` (
 `SEQ` int(11) NOT NULL,
 `QUOTE` varchar(2048) NOT NULL,
 `REFERENCE` varchar(2048) NOT NULL,
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_posts_tbl_quote_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 29
  • 30. 기능별 SQL •포스팅 – 링크 테이블 생성(TBL_POST_LINK) CREATE TABLE `TBL_POST_LINK` (
 `SEQ` int(11) NOT NULL,
 `URL` varchar(512) NOT NULL,
 `TITLE` varchar(512) NOT NULL,
 `DETAIL` varchar(2048) NOT NULL,
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_posts_tbl_post_link_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 30
  • 31. 기능별 SQL •포스팅 – 채팅 테이블 생성(TBL_POST_CHAT) CREATE TABLE `TBL_POST_CHAT` (
 `SEQ` int(11) NOT NULL,
 `TITLE` varchar(256) NOT NULL,
 `QUESTION` varchar(2048) NOT NULL,
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_posts_tbl_post_chat_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 31
  • 32. 기능별 SQL •포스팅 – 오디오 테이블 생성 (TBL_POST_AUDIO) CREATE TABLE `TBL_POST_AUDIO` (
 `SEQ` int(11) NOT NULL,
 `URL` varchar(1024) NOT NULL,
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_posts_tbl_post_audio_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 32
  • 33. 기능별 SQL •포스팅 - 비디오 테이블 생성 (TBL_POST_VIDEO) CREATE TABLE `TBL_POST_VIDEO` (
 `SEQ` int(11) NOT NULL,
 `URL` varchar(1024) NOT NULL,
 `CONTENT` varchar(2048) NOT NULL,
 PRIMARY KEY (`SEQ`),
 CONSTRAINT `tbl_posts_tbl_post_video_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
 )! 33
  • 34. 기능별 SQL •테마 테이블 생성 (TBL_THEME) CREATE TABLE `TBL_THEME` (! `SEQ` int(11) NOT NULL,! `SEQ_USER` int(11) NOT NULL,! `TITLE` varchar(2048) NOT NULL,! `SUMMARY` varchar(2048) NOT NULL,! `DETAIL` varchar(2048) NOT NULL,! `SOURCE_CODE` varchar(4086) NOT NULL,! `THUMBNAIL_URL` varchar(512) NOT NULL,! `OPT_FREE_OR_PAID` tinyint(1) DEFAULT NULL COMMENT '0 : 무료 1 : 유료',! `PRICE` int(11) NOT NULL DEFAULT '0',! `SEQ_CATEGORY` int(11) NOT NULL,! `HIT_VIEW` int(11) NOT NULL DEFAULT '0',! `HIT_SELL` int(11) NOT NULL,! PRIMARY KEY (`SEQ`),! KEY `tbl_user_tbl_theme_fk` (`SEQ_USER`),! KEY `fk_TBL_THEME_TBL_CATEGORIES1_idx` (`SEQ_CATEGORY`),! CONSTRAINT `tbl_user_tbl_theme_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE,! CONSTRAINT `fk_TBL_THEME_TBL_CATEGORIES1` FOREIGN KEY (`SEQ_CATEGORY`) REFERENCES `TBL_CATEGORIES` (`SEQ`) ON DELETE NO ACTION ON UPDATE NO ACTION! ) 34
  • 35. 기능별 SQL •테마 스크린샷 테이블 생성 (TBL_THEME_SCREENSHOT) CREATE TABLE `TBL_THEME_SCREENSHOT` (! `SEQ` int(11) NOT NULL,! `SEQ_THEME` int(11) NOT NULL,! `SCREENSHOT_URL` varchar(512) NOT NULL,! PRIMARY KEY (`SEQ`),! KEY `tbl_theme_tbl_theme_screenshot_fk` (`SEQ_THEME`),! CONSTRAINT `tbl_theme_tbl_theme_screenshot_fk` FOREIGN KEY (`SEQ_THEME`) REFERENCES `TBL_THEME` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE! ) 35
  • 36. 기능별 SQL •새 사용자 추가 INSERT INTO `tbl_user` (`SEQ`, `USER_ID`, `PASSWORD`, `EMAIL`, `USER_NAME`, `JOIN_DATE`, `USER_PROFILE_URL`, `STATUS`, `DROP_DATE`, `MODIFY_DATE`, `LANGUAGE`, `IS_EDIT_TOOL`, `TBL_LIKE_LIST_SEQ`)! VALUES! ! (4, 'lee', '1231', 'lee@naver.com', '이정훈', now(), 'www.haha.com/het.png', 1, NULL, NULL, 'KOR', '2', 0);! 36
  • 37. 기능별 SQL •회원 정지처리 & 탈퇴 update TBL_USER set state = 2 where user_id = ‘lee’ ‘ 회원정지! ! update TBL_USER set state = 0 where user_id = ‘lee' ‘ 탈퇴 37 * 사용자의 경우 state 1이 회원가입 상태, 0이 탈퇴상태, 2가 회원정지 상태
  • 38. 기능별 SQL •친구 추가 INSERT INTO `tbl_friends` (`SEQ`,`SEQ_FRIEND`,`SEQ_USER`)
 VALUES (0, ! (select SEQ from tbl_user where user_name=‘장익환’ limit 1), ! (select SEQ from tbl_user where user_name=‘강수현’ limit 1)),! (0, ! (select SEQ from tbl_user where user_name=‘장익환’ limit 1), ! (select SEQ from tbl_user where user_name=‘황정윤’ limit 1)); 38 * 위의 경우는 이름이 장익환인 회원에게 이름이 강수현, 황정윤 인 친구를 추가하는 질의
  • 39. 기능별 SQL •블로그 만들기(기본옵션) INSERT INTO `tbl_blog` (`SEQ`, `BLOG_TITLE`, `SEQ_USER`, `URL`, `BLOG_DETAIL`, `CREATE_DATE`, `HIT_VISITOR`)! VALUES! ! (3, '강's blog', 3, 'kang.soo', '깡수의 블로그', '2013-12-02 00:00:00', 12423424);! 39
  • 40. 기능별 SQL •새 포스트 등록(글) INSERT INTO `tbl_posts` (`SEQ`, `SEQ_BLOG`, `POST_TYPE`, `CREATE_DATE`, `MODIFY_DATE`, `WRITER_IP`, `CUSTOM_URL`, `OPT1`, `REFERENCE_URL`, `HIT_VIEWER`, `HIT_LIKE`)! VALUES! ! (0, 0, 0, '2013-03-02 00:00:00', NULL, '211.238.145.12', NULL, NULL, NULL, 1234, 123);! ! INSERT INTO `tbl_post_writings` (`SEQ_POST`, `TITLE`, `CONTENT`)! VALUES! ! (0, '오늘 일기', '오늘 나는 뭐하고 놀까 싶었다.<br /> 그러다 보니 어느덧 시간은 다되고...<br/> 허허허 허...');! 40
  • 41. 기능별 SQL •모든 회원의 등록된 글을 DESC순서로 가져오는 질의 select! ! A.SEQ,A.POST_TYPE ,(case A.POST_TYPE ! ! ! when 0 then (select title from TBL_POST_WRITINGS where SEQ = A.SEQ)! ! ! when 1 then (select content from TBL_POST_IMAGE where SEQ = A.SEQ)! ! ! when 2 then (select quote from TBL_POST_QUOTE where SEQ = A.SEQ)! ! ! when 3 then (select title from TBL_POST_LINK where SEQ = A.SEQ)! ! ! when 4 then (select title from TBL_POST_CHAT where SEQ = A.SEQ)! ! ! when 5 then (select url from TBL_POST_AUDIO where SEQ = A.SEQ)! ! ! when 6 then (select content from TBL_POST_VIDEO where SEQ = A.SEQ)! ! end) AS TITLE,A.CREATE_DATE,C.USER_NAME,A.HIT_VIEWER! from! ! TBL_POSTS A,! ! TBL_BLOG B,! ! TBL_USER C! where! ! A.SEQ_BLOG = B.SEQ! ! and B.SEQ_USER = C.SEQ! order by A.HIT_VIEWER desc 41
  • 42. 기능별 SQL •내 친구가 등록한 글 목록 select ! ! (select user_name from tbl_user where seq = B.seq_user) AS USER_NAME,
 ! A.CREATE_DATE,! ! A.HIT_VIEWER,! ! A.HIT_LIKE 
 from ! ! tbl_posts A,! ! tbl_blog B! where ! ! A.`SEQ_BLOG` = B.`SEQ` ! ! and B.`SEQ_USER` in ! ! ! (select SEQ_FRIEND from tbl_friends ! ! ! where SEQ_USER = ! ! ! ! (select user_name from tbl_user where email='matthew.chang@me.com’)! ! ! ) 42
  • 43. 기능별 SQL •내 친구가 등록한 글 중 가장 Like가 많은 글 select ! ! (select user_name from tbl_user where seq = B.seq_user) AS USER_NAME,
 ! A.CREATE_DATE,! ! A.HIT_VIEWER,! ! A.HIT_LIKE 
 from ! ! tbl_posts A,! ! tbl_blog B! where ! ! A.`SEQ_BLOG` = B.`SEQ` ! ! and B.`SEQ_USER` in ! ! ! (select SEQ_FRIEND from tbl_friends ! ! ! where SEQ_USER = ! ! ! ! (select user_name from tbl_user where email='matthew.chang@me.com’)! ! ! )! order by A.HIT_LIKE DESC LIMIT 1 43
  • 44. 기능별 SQL •날짜별 등록된 포스트 갯수 select! ! C.CREATE_DATE,! ! (SELECT COUNT(*) FROM tbl_posts where create_date = C.CREATE_DATE) AS NUM_WRITING_POST! from! ! tbl_user A,! ! tbl_blog B,! ! tbl_posts C! where! ! A.SEQ = B.SEQ_USER! ! and B.SEQ = C.SEQ_BLOG! group by C.CREATE_DATE 44
  • 45. 기능별 SQL •일자별 가입자 숫자 select! ! A.JOIN_DATE,! ! (SELECT COUNT(*) FROM tbl_user where join_date = A.JOIN_DATE) AS NUM_JOIN_USER! from! ! tbl_user A! group by A.JOIN_DATE 45
  • 46. 기능별 SQL •사용자별 방문자 순위 select! ! A.user_name,! ! B.BLOG_TITLE,! ! B.HIT_VISITOR! from! ! tbl_user A,! ! tbl_blog B! where! ! A.SEQ = B.SEQ_USER! order by B.`HIT_VISITOR` desc 46
  • 47. 기능별 SQL •방문자가 1000명 이상인 사용자의 블로그 select! ! A.user_name,! ! B.BLOG_TITLE,! ! B.HIT_VISITOR! from! ! tbl_user A,! ! tbl_blog B! where! ! A.SEQ = B.SEQ_USER! ! and B.HIT_VISITOR > 1000 47
  • 48. 기능별 SQL •카테고리가 ‘벤처 기업’ 인 테마 목록 select! ! *! from! ! tbl_theme A,! ! tbl_user B,! ! tbl_categories C! where! ! A.SEQ_CATEGORY = C.SEQ! ! and A.SEQ_USER = B.SEQ! ! and C.name = '벤처 기업' 48
  • 50. 메뉴 구조도 50 Tumblr' 회 원 가 입' Dashboard (로그인후)' Posts' 글작성' My' Timeline' Follower' 친구목록' 친구추 가/삭제' 활동' 블로그 꾸 미기' 테마선택' 테마옵션' 새 블로 그 만들 기' 설정' 계정설정' 테마' 카테 고리 별 보기' 인기 테마' 테마 등록'
  • 51. 화면 설계 •회원 가입 51 회원가입 이메일 주소 비밀번호 다른 사람이 나를 검색할 수 있도록 허용 비밀번호 확인 포스팅 편집도구 리치 텍스트 편집기 일반 텍스트/HTML 마크다운 언어 한국어 회원 가입 취소
  • 53. |
  • 55. |
  • 57. 등록 글 사진 인용구 링크 오디오 비디오 타임라인
  • 58. Posts
  • 70.
  • 72. :
  • 74. 화면 설계 •Posts - 글 작성 53 Tumblr Dashboard
  • 75. |
  • 77. |
  • 79. 등록 글 사진 인용구 링크 오디오 비디오 타임라인
  • 80. Posts
  • 87. |
  • 89. |
  • 91. 등록 글 사진 인용구 링크 오디오 비디오 타임라인
  • 92. Posts
  • 99. |
  • 100. 테마
  • 101. |
  • 103. Posts
  • 105. 활동
  • 109. 등록 글 사진 인용구 링크 오디오 비디오
  • 111. |
  • 112. 테마
  • 113. |
  • 115. Posts
  • 117. 활동
  • 121. 등록 글 사진 인용구 링크 오디오 비디오 제목
  • 123. |
  • 124. 테마
  • 125. |
  • 127. Posts
  • 129. 활동
  • 133. 등록 글 사진 인용구 링크 오디오 비디오 외부 URL
  • 135. |
  • 136. 테마
  • 137. |
  • 139. Posts
  • 141. 활동
  • 145. 등록 글 사진 인용구 링크 오디오 비디오
  • 147. |
  • 148. 테마
  • 149. |
  • 151. Posts
  • 153. 활동
  • 160. |
  • 161. 테마
  • 162. |
  • 164. Posts
  • 166. 활동
  • 170. 등록 등록이메일 입력친구찾기 Like : 2개
 총 팔로워 : 22명 05/10 토요일
 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..” 05/09 금요일
 uponateasd님이 나를 팔로우 합니다. [팔로우 하기] 05/08 목요일
 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..” 05/10 토요일
 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..” 05/10 토요일
 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”
  • 172. |
  • 173. 테마
  • 174. |
  • 176. Posts
  • 178. 활동
  • 182. 꾸미기 Hi I'm Matthew from Seoul, South Korea.br/br/ I'm a Software Engineer, studying Data Mining and Distributed Computing, enjoying electronic sounds. 설명 새창에서 링크 열기 모바일 전용 레이아웃 사용 새창에서 링크 열기 내포스트 | 샘플포스트Preview 페이지당 포스트 수 15 Red Background Blue Background Small Nav For Pages Hide Colored Top Bar Hide Background Texture Hide Date Hide Tags Hide Notes Align Navigation w/Description Infinite Scroll Hide Social Button 화면 표시 옵션 수정
  • 184. |
  • 185. 테마
  • 186. |
  • 188. Posts
  • 190. 활동
  • 194. 꾸미기 Disqus ID Twitter ID Facebook ID Dribble ID Flickr ID Youtube ID Skype ID Deviantart ID Vimeo ID Behance ID Foursquare ID LastFM ID Github ID 소셜 설정 수정
  • 196. |
  • 197. 테마
  • 198. |
  • 200. Posts
  • 202. 활동
  • 207. 만들기 제목 URL .tumblr.com 이 블로그는 여러 작성자가 관리할 수 있고 비공개로 설정할 수도 있습니다.
 참고: 포스트의 좋아요를 클릭하거나 다른 회원을 팔로우할 때 이 블로그 이름이 나타게 하려면 로그아웃한 다음 별도의 계정을 만들어야 합니다. 블로그 만들기
  • 209. |
  • 210. 테마
  • 211. |
  • 213. 인기
  • 214. 테마
  • 215. 테마
  • 217. :
  • 220. |
  • 221. 테마
  • 222. |
  • 224. 인기
  • 225. 테마
  • 226. 테마
  • 228. :
  • 231. |
  • 232. 테마
  • 233. |
  • 235. 인기
  • 236. 테마
  • 237. 테마
  • 239. 등록
  • 242. |
  • 243. 테마
  • 244. |
  • 246. 인기
  • 247. 테마
  • 248. 테마
  • 250. 등록
  • 251. (2page) Demo 데모 블로그 URL 지원요청 테마 지원 이메일 주소 소스코드 유/무료 무료 유료 가격입력 테마 등록 1단 | 2단 | 그리드카테고리
  • 253. |
  • 254. 테마
  • 255. |
  • 258. 설정 수정 사용자 이름 changmatthew 댓글 내 팔로잉의 댓글 허용 2주 이상된 내 팔로워의 댓글 허용 질문하기 질문 허용 포스트 허용 다른 사람들의 포스트 허용 내가 승인해야만 포스팅되도록 하려면 포스트를 /submit(으)로 보내세요. 한국어 | 영어언어