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

69
Micro Blog Database 중앙대학교 컴퓨터공학부 데이터베이스 시스템 1조 Tumblr(텀블러) 사이트에 대한 데이터베이스 응용설계 - 중간제출 장익환(20060957) 이상태(20115695) 조동경(20112104) 이소라(20111316) 박소연(20101524)

Upload: ikwhan-chang

Post on 25-Jan-2015

665 views

Category:

Engineering


0 download

DESCRIPTION

 

TRANSCRIPT

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

Micro Blog Database중앙대학교 컴퓨터공학부 데이터베이스 시스템 1조Tumblr(텀블러) 사이트에 대한 데이터베이스 응용설계 - 중간제출장익환(20060957) 이상태(20115695) 조동경(20112104) 이소라(20111316) 박소연(20101524)

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

2INDEX• 응용 분야

• 참조 사이트

• 응용의 기능

• ERD & Scheme

• 기능별 SQL

• UI설계

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

3

응용 분야

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

3응용 분야• 우리팀은 웹 서비스 중 “블로그”를 응용 분야의 한 주제로 선정하였다.

• 네이버 블로그, 티스토리, 이글루스 등 수 많은 블로그 플랫폼 중에 이러한 방대한 기능을 배제하고, 기

본적인 블로그의 기능인 “포스팅” 기능을 세분화하여 여기에 추가적으로 소셜 네트워크 기능(SNS)을

제공하는 응용 분야를 생각하였다.

• 본 응용분야는 기본적인 사용자 처리(회원가입,로그인 등)의 기능과 블로깅(글, 그림, 오디오, 비디오)

기능, 그리고 추가적으로 SNS기능의 일부인 친구관리 및 타임라인, 채팅등의 기능을 처리한다.

• 추가적으로 사용자들이 자신의 블로그를 꾸밀 수 있는 기능과 스킨을 사고팔 수 있는 마켓플레이스를

처리한다.

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

5

참조 사이트

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

참조 사이트

텀블러(tumblr)는 사용자들이 문자, 그림,

영상, 링크, 인용, 소리를 그들의 조그마한

텀블로그에 게재할 수 있게 도와 주는 마이크

로블로그 플랫폼이자 웹사이트이다.

! 사용자들은 다른 사용자를 팔로우(follow)

할 수 있고, 또한 블로그를 꾸밀 수 있다. 사

용자는 또한 자신이 직접 스킨을 제작하고 판

매할 수 있는 마켓 플레이스를 갖추고 있다.

www.tumblr.com

6

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

7

응용의 기능

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

응용의 기능•텀블러 응용 기능

텀블러 DB

포스팅

팔로잉

친구 관리

타임 라인글 쓰기, 수정, 삭제

글/사진/비디오/오디오 …

스킨

스킨 구매

스킨 제작

블로그 회원관리

계정

8

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

9

ERD & Scheme

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

ERD 테이블 10블로그

사용자

포스트

테마

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

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)

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

ERD 테이블 12•블로그

Table AttributesTBL_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

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

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_WRITINGS

포스팅 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), 격언내용, 출처

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

ERD 테이블 14•테마

Table AttributesTBL_THEME 테마SEQ(PK,AI), 제작자 유저 SEQ(FK), 제목, 요약, 내용, 소스코드, 섬네일URL, 유/무료 옵션, 가격, 카테고리 SEQ(FK), 뷰카운트, 판매숫자

TBL_THEME_SCREENSHOT 스크린샷 SEQ(PK,AI), 테마SEQ(FK), 스크린샷 URL

TBL_CATEGORIES 카테고리 SEQ(PK,AI), 카테고리명

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

15

기능별 SQL

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

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

CREATE TABLE `TBL_CATEGORIES` ( `SEQ` int(11) NOT NULL, `NAME` varchar(256) NOT NULL, PRIMARY KEY (`SEQ`) )

23

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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', '[email protected]', '이정훈', now(), 'www.haha.com/het.png', 1, NULL, NULL, 'KOR', '2', 0);!

36

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

기능별 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가 회원정지 상태

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

기능별 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

* 위의 경우는 이름이 장익환인 회원에게 이름이 강수현, 황정윤 인 친구를 추가하는 질의

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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='[email protected]’)!! ! )

42

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

기능별 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='[email protected]’)!! ! )!order by A.HIT_LIKE DESC LIMIT 1

43

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

기능별 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

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

49

UI 설계

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

메뉴 구조도 50Tumblr'

회원가입'

Dashboard (로그인후)'

Posts'

글작성' My'Timeline'

Follower'

친구목록' 친구추가/삭제'

활동' 블로그 꾸미기'

테마선택' 테마옵션'

새 블로그 만들기'

설정'

계정설정'

테마'

카테고리 별 보기'

인기테마'

테마 등록'

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

화면 설계•회원 가입

51회원가입

이메일 주소

비밀번호

다른 사람이 나를 검색할 수 있도록 허용

비밀번호 확인

포스팅 편집도구 리치 텍스트 편집기 일반 텍스트/HTML 마크다운

언어 한국어

회원 가입 취소

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

화면 설계•Dashboard

52Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

포스팅����������� ������������������ 등록 글 사진 인용구 링크 오디오 비디오

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

장익환([email protected])����������� ������������������ 님이����������� ������������������ 2014-05-08����������� ������������������ 등록한����������� ������������������ 사진����������� ������������������

!

오늘은����������� ������������������ 기분이����������� ������������������ 좀����������� ������������������ 좋군. Tags����������� ������������������ :����������� ������������������ 일상,기분,플젝,언제다하지,밤새기싫긔

. . .

Timeline

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

화면 설계•Posts - 글 작성

53Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

포스팅����������� ������������������ 등록 글 사진 인용구 링크 오디오 비디오

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

제목

등록 취소

사용자 지정 URL

출처

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

화면 설계 54Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

포스팅����������� ������������������ 등록 글 사진 인용구 링크 오디오 비디오타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

제목

등록 취소

사진설명

태그등록

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

화면 설계 55Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

인용구

등록 취소

출처

태그등록

포스팅����������� ������������������ 등록 글 사진 인용구 링크 오디오 비디오

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

화면 설계 56Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

URL

등록 취소

설명

태그등록

포스팅����������� ������������������ 등록 글 사진 인용구 링크 오디오 비디오

제목

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

화면 설계 57Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

업로드

등록 취소

설명

태그등록

포스팅����������� ������������������ 등록 글 사진 인용구 링크 오디오 비디오

외부 URL

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

화면 설계 58Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

업로드

등록 취소

설명

태그등록

외부 URL

포스팅����������� ������������������ 등록 글 사진 인용구 링크 오디오 비디오

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

화면 설계 59Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

친구����������� ������������������ 목록

친구����������� ������������������ 등록

등록이메일 입력친구찾기

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

화면 설계 60Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

활동

친구����������� ������������������ 등록

등록이메일 입력친구찾기

Like : 2개총 팔로워 : 22명

05/10 토요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”

05/09 금요일 uponateasd님이 나를 팔로우 합니다. [팔로우 하기]

05/08 목요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”

05/10 토요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”

05/10 토요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”

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

화면 설계 61Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

Matthew TIMES

제목

블로그����������� ������������������ 꾸미기

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

화면 표시 옵션

수정

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

화면 설계 62Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

Google Analytics ID

블로그����������� ������������������ 꾸미기

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

소셜 설정

수정

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

화면 설계 63Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

타임라인����������� ������������������

Posts����������� ������������������

Followers����������� ������������������

활동����������� ������������������

블로그����������� ������������������ 꾸미기����������� ������������������

새블로그

새����������� ������������������ 블로그����������� ������������������ 만들기

제목

URL .tumblr.com

이 블로그는 여러 작성자가 관리할 수 있고 비공개로 설정할 수도 있습니다.참고: 포스트의 좋아요를 클릭하거나 다른 회원을 팔로우할 때 이 블로그 이름이 나타게 하려면 로그아웃한 다음 별도의 계정을 만들어야 합니다.

블로그 만들기

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

화면 설계 64Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

카테고리����������� ������������������

인기����������� ������������������ 테마����������� ������������������

테마����������� ������������������ 등록

테마����������� ������������������ :����������� ������������������ 카테고리

카테고리 : 1단

카테고리 : 2단

. . .

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

화면 설계 65Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

카테고리����������� ������������������

인기����������� ������������������ 테마����������� ������������������

테마����������� ������������������ 등록

테마����������� ������������������ :����������� ������������������ 인기

유료 인기테마

무료 인기테마

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

화면 설계 66Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

카테고리����������� ������������������

인기����������� ������������������ 테마����������� ������������������

테마����������� ������������������ 등록

테마����������� ������������������ 등록����������� ������������������ (1page)

제목

태그

섬네일 등록

스크린샷 등록

설명

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

화면 설계 67Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

카테고리����������� ������������������

인기����������� ������������������ 테마����������� ������������������

테마����������� ������������������ 등록

테마����������� ������������������ 등록����������� ������������������ (2page)

Demo 데모 블로그 URL

지원요청 테마 지원 이메일 주소

소스코드

유/무료 무료 유료 가격입력

테마 등록1단 | 2단 | 그리드 카테고리

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

화면 설계 68

Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정

계정����������� ������������������ 설정계정����������� ������������������ 설정

수정

사용자 이름 changmatthew

댓글 내 팔로잉의 댓글 허용

2주 이상된 내 팔로워의 댓글 허용

질문하기 질문 허용

포스트 허용 다른 사람들의 포스트 허용내가 승인해야만 포스팅되도록 하려면 포스트를 /submit(으)로 보내세요.

한국어 | 영어언어

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

thanks!

www.izectlab.com

감사합니다.