SlideShare uma empresa Scribd logo
1 de 69
Baixar para ler offline
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
등록한
사진
!
오늘은
기분이

Mais conteúdo relacionado

Mais procurados

[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션NHN FORWARD
 
익명 채팅 앱 최종 발표 자료
익명 채팅 앱 최종 발표 자료익명 채팅 앱 최종 발표 자료
익명 채팅 앱 최종 발표 자료Young-jun Park
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성noerror
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁KWANGIL KIM
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORMYaroslav Muravskyi
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용흥배 최
 
파이썬 xml 이해하기
파이썬 xml 이해하기파이썬 xml 이해하기
파이썬 xml 이해하기Yong Joon Moon
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksShawn Rider
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)David Salz
 

Mais procurados (20)

[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
 
익명 채팅 앱 최종 발표 자료
익명 채팅 앱 최종 발표 자료익명 채팅 앱 최종 발표 자료
익명 채팅 앱 최종 발표 자료
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
Mentor Your Indexes
Mentor Your IndexesMentor Your Indexes
Mentor Your Indexes
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORM
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
 
파이썬 xml 이해하기
파이썬 xml 이해하기파이썬 xml 이해하기
파이썬 xml 이해하기
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, Tricks
 
Sql Antipatterns Strike Back
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike Back
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
 

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

tumblr.com 에 대한 DB구조 분석
tumblr.com 에 대한 DB구조 분석tumblr.com 에 대한 DB구조 분석
tumblr.com 에 대한 DB구조 분석Matthew Chang
 
Analyze of Tumblr.com
Analyze of Tumblr.comAnalyze of Tumblr.com
Analyze of Tumblr.comMatthew Chang
 
Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료Matthew Chang
 
정해균 포트폴리오
정해균 포트폴리오정해균 포트폴리오
정해균 포트폴리오Haegyun Jung
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱NAVER D2
 
Django - CRUD 기능 구현
Django - CRUD 기능 구현Django - CRUD 기능 구현
Django - CRUD 기능 구현Jessica Lee
 
2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리Jay Park
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
SJBoard Project Portfolio
SJBoard Project PortfolioSJBoard Project Portfolio
SJBoard Project PortfolioJuyoungKang7
 
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장홍준 김
 

Semelhante 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장
 

Mais de Matthew Chang

Research and Analysis of SSH
Research and Analysis of SSH Research and Analysis of SSH
Research and Analysis of SSH Matthew Chang
 
Digital Certified Mail (PPT)
Digital Certified Mail (PPT)Digital Certified Mail (PPT)
Digital Certified Mail (PPT)Matthew Chang
 
Digital Certified Mail
Digital Certified MailDigital Certified Mail
Digital Certified MailMatthew Chang
 
Twitter Trend Analyzer
Twitter Trend AnalyzerTwitter Trend Analyzer
Twitter Trend AnalyzerMatthew Chang
 
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 parserMatthew 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 SwiftMatthew 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 codeMatthew Chang
 
Logic Circuit Project Final Presentation
Logic Circuit Project Final PresentationLogic Circuit Project Final Presentation
Logic Circuit Project Final PresentationMatthew Chang
 
Programming Language Final PPT
Programming Language Final PPTProgramming Language Final PPT
Programming Language Final PPTMatthew Chang
 
Profile_ Ikwhan chang
Profile_ Ikwhan changProfile_ Ikwhan chang
Profile_ Ikwhan changMatthew Chang
 
모바일 앱 개발 최종 발표 Proposal
모바일 앱 개발 최종 발표 Proposal모바일 앱 개발 최종 발표 Proposal
모바일 앱 개발 최종 발표 ProposalMatthew Chang
 
Capstone Project Final Presentation
Capstone Project Final PresentationCapstone Project Final Presentation
Capstone Project Final PresentationMatthew Chang
 
Project Avalon Online(Game) Final Report
Project Avalon Online(Game) Final ReportProject Avalon Online(Game) Final Report
Project Avalon Online(Game) Final ReportMatthew Chang
 
Project NGX - Proposal
Project NGX - ProposalProject NGX - Proposal
Project NGX - ProposalMatthew Chang
 
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)Matthew Chang
 
Capstone Project Last Demonstration
Capstone Project Last DemonstrationCapstone Project Last Demonstration
Capstone Project Last DemonstrationMatthew Chang
 
​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료Matthew Chang
 

Mais 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

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 

Último (8)

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

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(으)로 보내세요. 한국어 | 영어언어