From ea207cb78c1237ce3f7e7bd847410284cac48e9e Mon Sep 17 00:00:00 2001 From: dani820 Date: Sat, 21 Sep 2024 22:59:27 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feature:=20=ED=85=8C=EC=9D=B4=EB=B8=94=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EC=BF=BC=EB=A6=AC=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/sql/InMyBook.sql | 127 ++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 src/main/resources/sql/InMyBook.sql diff --git a/src/main/resources/sql/InMyBook.sql b/src/main/resources/sql/InMyBook.sql new file mode 100644 index 0000000..59f724e --- /dev/null +++ b/src/main/resources/sql/InMyBook.sql @@ -0,0 +1,127 @@ +CREATE TABLE `POST` ( + `ID` BIGINT UNSIGNED NOT NULL, + `POST_UUID` VARCHAR(36) NOT NULL, + `TITLE` VARCHAR(150) NOT NULL, + `CONTENT` TEXT NULL, + `READING_STATE` VARCHAR(5) NULL, + `READING_START_DATE` DATETIME NULL, + `READING_END_DATE` DATETIME NULL, + `RATING` DECIMAL(2, 1) NOT NULL DEFAULT 0, + `BOOKMARK_COUNT` INT NOT NULL DEFAULT 0, + `LIKE_COUNT` INT UNSIGNED NOT NULL DEFAULT 0, + `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT N, + `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, + `MEMBER_ID` BIGINT UNSIGNED NOT NULL, + `MEMBER_UUID` VARCHAR(36) NOT NULL, + `BOOK_ID` BIGINT UNSIGNED NOT NULL, + CONSTRAINT PK_POST PRIMARY KEY(ID, POST_UUID) +); + +CREATE TABLE `MEMBER` ( + `ID` BIGINT UNSIGNED NOT NULL, + `MEMBER_UUID` VARCHAR(36) NOT NULL, + `EMAIL` VARCHAR(255) NOT NULL, + `PASSWORD` CHAR(60) NOT NULL, + `NICKNAME` VARCHAR(30) NOT NULL, + `USE_YN` VARCHAR(1) NOT NULL, + CONSTRAINT PK_MEMBER PRIMARY KEY(ID, MEMBER_UUID), + CONSTRAINT UQ_EMAIL UNIQUE(EMAIL), + CONSTRAINT UQ_NICKNAME UNIQUE(NICKNAME) +); + +CREATE TABLE `ATTACH` ( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `FILE_NAME` VARCHAR(36) NULL, + `ORG_FILE_NAME` VARCHAR(255) NULL, + `FILE_EXT` VARCHAR(4) NULL, + `FILE_DATA` BLOB NULL, + `FILE_SIZE` INT UNSIGNED NULL, + `BOOK_ID` BIGINT UNSIGNED NOT NULL +); + +CREATE TABLE `COMMENT` ( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `COMMENT_CONTENT` VARCHAR(800) NOT NULL, + `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, + `DEPTH` INT UNSIGNED NOT NULL, + `PARENT_COMMENT_ID` BIGINT UNSIGNED NULL, + `POST_ID` BIGINT UNSIGNED NOT NULL, + `POST_UUID` VARCHAR(36) NOT NULL, + `COMMENTER_ID` BIGINT UNSIGNED NOT NULL, + `MEMBER_UUID` VARCHAR(36) NOT NULL +); + +CREATE TABLE `BOOK` ( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `ISBN_NO` VARCHAR(24) NULL, + `BOOK_NAME` VARCHAR(1200) NOT NULL, + `BOOK_DETAILS` TEXT NULL, + `AUTHOR` VARCHAR(1000) NULL, + `PUBLISHER` VARCHAR(1000) NULL, + `BOOK_THUMB_URL` VARCHAR(1000) NULL +); + +ALTER TABLE `POST` ADD CONSTRAINT `FK_MEMBER_TO_POST_1` FOREIGN KEY ( + `MEMBER_ID` +) +REFERENCES `MEMBER` ( + `ID` +); + +ALTER TABLE `POST` ADD CONSTRAINT `FK_MEMBER_TO_POST_2` FOREIGN KEY ( + `MEMBER_UUID` +) +REFERENCES `MEMBER` ( + `MEMBER_UUID` +); + +ALTER TABLE `POST` ADD CONSTRAINT `FK_BOOK_TO_POST_1` FOREIGN KEY ( + `BOOK_ID` +) +REFERENCES `BOOK` ( + `ID` +); + +ALTER TABLE `ATTACH` ADD CONSTRAINT `FK_BOOK_TO_ATTACH_1` FOREIGN KEY ( + `BOOK_ID` +) +REFERENCES `BOOK` ( + `ID` +); + +ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_COMMENT_TO_COMMENT_1` FOREIGN KEY ( + `PARENT_COMMENT_ID` +) +REFERENCES `COMMENT` ( + `ID` +); + +ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_POST_TO_COMMENT_1` FOREIGN KEY ( + `POST_ID` +) +REFERENCES `POST` ( + `ID` +); + +ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_POST_TO_COMMENT_2` FOREIGN KEY ( + `POST_UUID` +) +REFERENCES `POST` ( + `POST_UUID` +); + +ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_MEMBER_TO_COMMENT_1` FOREIGN KEY ( + `COMMENTER_ID` +) +REFERENCES `MEMBER` ( + `ID` +); + +ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_MEMBER_TO_COMMENT_2` FOREIGN KEY ( + `MEMBER_UUID` +) +REFERENCES `MEMBER` ( + `MEMBER_UUID` +); \ No newline at end of file From be9b53ef50c7ea43b5598b8a38f65fc2fddc3c5a Mon Sep 17 00:00:00 2001 From: dani820 Date: Sun, 22 Sep 2024 12:41:41 +0900 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=EC=A2=8B=EC=95=84=EC=9A=94,=20?= =?UTF-8?q?=EB=B6=81=EB=A7=88=ED=81=AC=20=ED=85=8C=EC=9D=B4=EB=B8=94=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - POST 테이블 내 좋아요 수, 북마크 수 컬럼 삭제 --- src/main/resources/sql/InMyBook.sql | 73 +++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/src/main/resources/sql/InMyBook.sql b/src/main/resources/sql/InMyBook.sql index 59f724e..df1f095 100644 --- a/src/main/resources/sql/InMyBook.sql +++ b/src/main/resources/sql/InMyBook.sql @@ -63,6 +63,23 @@ CREATE TABLE `BOOK` ( `BOOK_THUMB_URL` VARCHAR(1000) NULL ); +CREATE TABLE `LIKE` ( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `BOOK_ID` BIGINT UNSIGNED NOT NULL, + `POST_UUID` VARCHAR(36) NOT NULL, + `MEMBER_ID` BIGINT UNSIGNED NOT NULL, + `MEMBER_UUID` VARCHAR(36) NOT NULL +); + +CREATE TABLE `BOOKMARK` ( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `BOOK_ID` BIGINT UNSIGNED NOT NULL, + `POST_UUID` VARCHAR(36) NOT NULL, + `MEMBER_ID` BIGINT UNSIGNED NOT NULL, + `MEMBER_UUID` VARCHAR(36) NOT NULL +); + + ALTER TABLE `POST` ADD CONSTRAINT `FK_MEMBER_TO_POST_1` FOREIGN KEY ( `MEMBER_ID` ) @@ -124,4 +141,60 @@ ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_MEMBER_TO_COMMENT_2` FOREIGN KEY ( ) REFERENCES `MEMBER` ( `MEMBER_UUID` +); + +ALTER TABLE `LIKE` ADD CONSTRAINT `FK_POST_TO_LIKE_1` FOREIGN KEY ( + `BOOK_ID` +) +REFERENCES `POST` ( + `ID` +); + +ALTER TABLE `LIKE` ADD CONSTRAINT `FK_POST_TO_LIKE_2` FOREIGN KEY ( + `POST_UUID` +) +REFERENCES `POST` ( + `POST_UUID` +); + +ALTER TABLE `LIKE` ADD CONSTRAINT `FK_MEMBER_TO_LIKE_1` FOREIGN KEY ( + `MEMBER_ID` +) +REFERENCES `MEMBER` ( + `ID` +); + +ALTER TABLE `LIKE` ADD CONSTRAINT `FK_MEMBER_TO_LIKE_2` FOREIGN KEY ( + `MEMBER_UUID` +) +REFERENCES `MEMBER` ( + `MEMBER_UUID` +); + +ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_POST_TO_BOOKMARK_1` FOREIGN KEY ( + `POST_ID` +) +REFERENCES `POST` ( + `ID` +); + +ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_POST_TO_BOOKMARK_2` FOREIGN KEY ( + `POST_UUID` +) +REFERENCES `POST` ( + `POST_UUID` +); + +ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_MEMBER_TO_BOOKMARK_1` FOREIGN KEY ( + `MEMBER_ID` +) +REFERENCES `MEMBER` ( + `ID` +); + +ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_MEMBER_TO_BOOKMARK_2` FOREIGN KEY ( + `MEMBER_UUID` +) +REFERENCES `MEMBER` ( + `MEMBER_UUID` ); \ No newline at end of file From 3ecfd74e1eafec2cb3d3914f207913f2566c54a1 Mon Sep 17 00:00:00 2001 From: dani820 Date: Sun, 22 Sep 2024 17:40:23 +0900 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20uuid=20=EC=A0=9C=EC=95=BD?= =?UTF-8?q?=EC=A1=B0=EA=B1=B4=20=EC=88=98=EC=A0=95=20(primary=20key=20->?= =?UTF-8?q?=20unique)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/sql/InMyBook.sql | 359 ++++++++++++---------------- 1 file changed, 159 insertions(+), 200 deletions(-) diff --git a/src/main/resources/sql/InMyBook.sql b/src/main/resources/sql/InMyBook.sql index df1f095..dc95d24 100644 --- a/src/main/resources/sql/InMyBook.sql +++ b/src/main/resources/sql/InMyBook.sql @@ -1,200 +1,159 @@ -CREATE TABLE `POST` ( - `ID` BIGINT UNSIGNED NOT NULL, - `POST_UUID` VARCHAR(36) NOT NULL, - `TITLE` VARCHAR(150) NOT NULL, - `CONTENT` TEXT NULL, - `READING_STATE` VARCHAR(5) NULL, - `READING_START_DATE` DATETIME NULL, - `READING_END_DATE` DATETIME NULL, - `RATING` DECIMAL(2, 1) NOT NULL DEFAULT 0, - `BOOKMARK_COUNT` INT NOT NULL DEFAULT 0, - `LIKE_COUNT` INT UNSIGNED NOT NULL DEFAULT 0, - `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT N, - `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, - `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, - `MEMBER_ID` BIGINT UNSIGNED NOT NULL, - `MEMBER_UUID` VARCHAR(36) NOT NULL, - `BOOK_ID` BIGINT UNSIGNED NOT NULL, - CONSTRAINT PK_POST PRIMARY KEY(ID, POST_UUID) -); - -CREATE TABLE `MEMBER` ( - `ID` BIGINT UNSIGNED NOT NULL, - `MEMBER_UUID` VARCHAR(36) NOT NULL, - `EMAIL` VARCHAR(255) NOT NULL, - `PASSWORD` CHAR(60) NOT NULL, - `NICKNAME` VARCHAR(30) NOT NULL, - `USE_YN` VARCHAR(1) NOT NULL, - CONSTRAINT PK_MEMBER PRIMARY KEY(ID, MEMBER_UUID), - CONSTRAINT UQ_EMAIL UNIQUE(EMAIL), - CONSTRAINT UQ_NICKNAME UNIQUE(NICKNAME) -); - -CREATE TABLE `ATTACH` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, - `FILE_NAME` VARCHAR(36) NULL, - `ORG_FILE_NAME` VARCHAR(255) NULL, - `FILE_EXT` VARCHAR(4) NULL, - `FILE_DATA` BLOB NULL, - `FILE_SIZE` INT UNSIGNED NULL, - `BOOK_ID` BIGINT UNSIGNED NOT NULL -); - -CREATE TABLE `COMMENT` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, - `COMMENT_CONTENT` VARCHAR(800) NOT NULL, - `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, - `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, - `DEPTH` INT UNSIGNED NOT NULL, - `PARENT_COMMENT_ID` BIGINT UNSIGNED NULL, - `POST_ID` BIGINT UNSIGNED NOT NULL, - `POST_UUID` VARCHAR(36) NOT NULL, - `COMMENTER_ID` BIGINT UNSIGNED NOT NULL, - `MEMBER_UUID` VARCHAR(36) NOT NULL -); - -CREATE TABLE `BOOK` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, - `ISBN_NO` VARCHAR(24) NULL, - `BOOK_NAME` VARCHAR(1200) NOT NULL, - `BOOK_DETAILS` TEXT NULL, - `AUTHOR` VARCHAR(1000) NULL, - `PUBLISHER` VARCHAR(1000) NULL, - `BOOK_THUMB_URL` VARCHAR(1000) NULL -); - -CREATE TABLE `LIKE` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, - `BOOK_ID` BIGINT UNSIGNED NOT NULL, - `POST_UUID` VARCHAR(36) NOT NULL, - `MEMBER_ID` BIGINT UNSIGNED NOT NULL, - `MEMBER_UUID` VARCHAR(36) NOT NULL -); - -CREATE TABLE `BOOKMARK` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, - `BOOK_ID` BIGINT UNSIGNED NOT NULL, - `POST_UUID` VARCHAR(36) NOT NULL, - `MEMBER_ID` BIGINT UNSIGNED NOT NULL, - `MEMBER_UUID` VARCHAR(36) NOT NULL -); - - -ALTER TABLE `POST` ADD CONSTRAINT `FK_MEMBER_TO_POST_1` FOREIGN KEY ( - `MEMBER_ID` -) -REFERENCES `MEMBER` ( - `ID` -); - -ALTER TABLE `POST` ADD CONSTRAINT `FK_MEMBER_TO_POST_2` FOREIGN KEY ( - `MEMBER_UUID` -) -REFERENCES `MEMBER` ( - `MEMBER_UUID` -); - -ALTER TABLE `POST` ADD CONSTRAINT `FK_BOOK_TO_POST_1` FOREIGN KEY ( - `BOOK_ID` -) -REFERENCES `BOOK` ( - `ID` -); - -ALTER TABLE `ATTACH` ADD CONSTRAINT `FK_BOOK_TO_ATTACH_1` FOREIGN KEY ( - `BOOK_ID` -) -REFERENCES `BOOK` ( - `ID` -); - -ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_COMMENT_TO_COMMENT_1` FOREIGN KEY ( - `PARENT_COMMENT_ID` -) -REFERENCES `COMMENT` ( - `ID` -); - -ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_POST_TO_COMMENT_1` FOREIGN KEY ( - `POST_ID` -) -REFERENCES `POST` ( - `ID` -); - -ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_POST_TO_COMMENT_2` FOREIGN KEY ( - `POST_UUID` -) -REFERENCES `POST` ( - `POST_UUID` -); - -ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_MEMBER_TO_COMMENT_1` FOREIGN KEY ( - `COMMENTER_ID` -) -REFERENCES `MEMBER` ( - `ID` -); - -ALTER TABLE `COMMENT` ADD CONSTRAINT `FK_MEMBER_TO_COMMENT_2` FOREIGN KEY ( - `MEMBER_UUID` -) -REFERENCES `MEMBER` ( - `MEMBER_UUID` -); - -ALTER TABLE `LIKE` ADD CONSTRAINT `FK_POST_TO_LIKE_1` FOREIGN KEY ( - `BOOK_ID` -) -REFERENCES `POST` ( - `ID` -); - -ALTER TABLE `LIKE` ADD CONSTRAINT `FK_POST_TO_LIKE_2` FOREIGN KEY ( - `POST_UUID` -) -REFERENCES `POST` ( - `POST_UUID` -); - -ALTER TABLE `LIKE` ADD CONSTRAINT `FK_MEMBER_TO_LIKE_1` FOREIGN KEY ( - `MEMBER_ID` -) -REFERENCES `MEMBER` ( - `ID` -); - -ALTER TABLE `LIKE` ADD CONSTRAINT `FK_MEMBER_TO_LIKE_2` FOREIGN KEY ( - `MEMBER_UUID` -) -REFERENCES `MEMBER` ( - `MEMBER_UUID` -); - -ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_POST_TO_BOOKMARK_1` FOREIGN KEY ( - `POST_ID` -) -REFERENCES `POST` ( - `ID` -); - -ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_POST_TO_BOOKMARK_2` FOREIGN KEY ( - `POST_UUID` -) -REFERENCES `POST` ( - `POST_UUID` -); - -ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_MEMBER_TO_BOOKMARK_1` FOREIGN KEY ( - `MEMBER_ID` -) -REFERENCES `MEMBER` ( - `ID` -); - -ALTER TABLE `BOOKMARK` ADD CONSTRAINT `FK_MEMBER_TO_BOOKMARK_2` FOREIGN KEY ( - `MEMBER_UUID` -) -REFERENCES `MEMBER` ( - `MEMBER_UUID` -); \ No newline at end of file +CREATE TABLE `POST` +( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `POST_UUID` VARCHAR(36) NOT NULL, + `TITLE` VARCHAR(150) NOT NULL, + `CONTENT` TEXT NULL, + `READING_STATE` VARCHAR(5) NULL, + `READING_START_DATE` DATETIME NULL, + `READING_END_DATE` DATETIME NULL, + `RATING` DECIMAL(2, 1) NOT NULL DEFAULT 0.0, + `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT N, + `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, + `MEMBER_ID` BIGINT UNSIGNED NOT NULL, + `BOOK_ID` BIGINT UNSIGNED NOT NULL, + CONSTRAINT UQ_POST_UUID UNIQUE (POST_UUID) +); + +CREATE TABLE `MEMBER` +( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `MEMBER_UUID` VARCHAR(36) NOT NULL, + `EMAIL` VARCHAR(255) NOT NULL, + `PASSWORD` CHAR(60) NOT NULL, + `NICKNAME` VARCHAR(30) NOT NULL, + `USE_YN` VARCHAR(1) NOT NULL, + CONSTRAINT UQ_MEMBER_UUID UNIQUE (MEMBER_UUID), + CONSTRAINT UQ_EMAIL UNIQUE (EMAIL), + CONSTRAINT UQ_NICKNAME UNIQUE (NICKNAME) +); + +CREATE TABLE `ATTACH` +( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `FILE_NAME` VARCHAR(36) NULL, + `ORG_FILE_NAME` VARCHAR(255) NULL, + `FILE_EXT` VARCHAR(4) NULL, + `FILE_DATA` BLOB NULL, + `FILE_SIZE` INT UNSIGNED NULL, + `BOOK_ID` BIGINT UNSIGNED NOT NULL +); + +CREATE TABLE `COMMENT` +( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `COMMENT_CONTENT` VARCHAR(800) NOT NULL, + `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, + `DEPTH` INT UNSIGNED NOT NULL, + `PARENT_COMMENT_ID` BIGINT UNSIGNED NULL, + `POST_ID` BIGINT UNSIGNED NOT NULL, + `COMMENTER_ID` BIGINT UNSIGNED NOT NULL, +); + +CREATE TABLE `BOOK` +( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `ISBN_NO` VARCHAR(24) NULL, + `BOOK_NAME` VARCHAR(1200) NOT NULL, + `BOOK_DETAILS` TEXT NULL, + `AUTHOR` VARCHAR(1000) NULL, + `PUBLISHER` VARCHAR(1000) NULL, + `BOOK_THUMB_URL` VARCHAR(1000) NULL +); + +CREATE TABLE `LIKE` +( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `BOOK_ID` BIGINT UNSIGNED NOT NULL, + `MEMBER_ID` BIGINT UNSIGNED NOT NULL, +); + +CREATE TABLE `BOOKMARK` +( + `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `BOOK_ID` BIGINT UNSIGNED NOT NULL, + `MEMBER_ID` BIGINT UNSIGNED NOT NULL, +); + + +ALTER TABLE `POST` + ADD CONSTRAINT `FK_MEMBER_TO_POST_1` FOREIGN KEY ( + `MEMBER_ID` + ) + REFERENCES `MEMBER` ( + `ID` + ); + +ALTER TABLE `POST` + ADD CONSTRAINT `FK_BOOK_TO_POST_1` FOREIGN KEY ( + `BOOK_ID` + ) + REFERENCES `BOOK` ( + `ID` + ); + +ALTER TABLE `ATTACH` + ADD CONSTRAINT `FK_BOOK_TO_ATTACH_1` FOREIGN KEY ( + `BOOK_ID` + ) + REFERENCES `BOOK` ( + `ID` + ); + +ALTER TABLE `COMMENT` + ADD CONSTRAINT `FK_COMMENT_TO_COMMENT_1` FOREIGN KEY ( + `PARENT_COMMENT_ID` + ) + REFERENCES `COMMENT` ( + `ID` + ); + +ALTER TABLE `COMMENT` + ADD CONSTRAINT `FK_POST_TO_COMMENT_1` FOREIGN KEY ( + `POST_ID` + ) + REFERENCES `POST` ( + `ID` + ); + +ALTER TABLE `COMMENT` + ADD CONSTRAINT `FK_MEMBER_TO_COMMENT_1` FOREIGN KEY ( + `COMMENTER_ID` + ) + REFERENCES `MEMBER` ( + `ID` + ); + +ALTER TABLE `LIKE` + ADD CONSTRAINT `FK_POST_TO_LIKE_1` FOREIGN KEY ( + `BOOK_ID` + ) + REFERENCES `POST` ( + `ID` + ); + +ALTER TABLE `LIKE` + ADD CONSTRAINT `FK_MEMBER_TO_LIKE_1` FOREIGN KEY ( + `MEMBER_ID` + ) + REFERENCES `MEMBER` ( + `ID` + ); + +ALTER TABLE `BOOKMARK` + ADD CONSTRAINT `FK_POST_TO_BOOKMARK_1` FOREIGN KEY ( + `POST_ID` + ) + REFERENCES `POST` ( + `ID` + ); + +ALTER TABLE `BOOKMARK` + ADD CONSTRAINT `FK_MEMBER_TO_BOOKMARK_1` FOREIGN KEY ( + `MEMBER_ID` + ) + REFERENCES `MEMBER` ( + `ID` + ); \ No newline at end of file From 79049e98b540bc26fab1221398f36b050a66d318 Mon Sep 17 00:00:00 2001 From: dani820 Date: Mon, 23 Sep 2024 20:48:50 +0900 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20auto=20increment=20=EC=86=8D?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20foreign=20key=20?= =?UTF-8?q?=EC=A0=9C=EC=95=BD=EC=A1=B0=EA=B1=B4=20=EA=B5=AC=EB=AC=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/sql/InMyBook.sql | 163 ++++++++-------------------- 1 file changed, 46 insertions(+), 117 deletions(-) diff --git a/src/main/resources/sql/InMyBook.sql b/src/main/resources/sql/InMyBook.sql index dc95d24..ce386f2 100644 --- a/src/main/resources/sql/InMyBook.sql +++ b/src/main/resources/sql/InMyBook.sql @@ -1,24 +1,6 @@ -CREATE TABLE `POST` +CREATE TABLE `MEMBER` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, - `POST_UUID` VARCHAR(36) NOT NULL, - `TITLE` VARCHAR(150) NOT NULL, - `CONTENT` TEXT NULL, - `READING_STATE` VARCHAR(5) NULL, - `READING_START_DATE` DATETIME NULL, - `READING_END_DATE` DATETIME NULL, - `RATING` DECIMAL(2, 1) NOT NULL DEFAULT 0.0, - `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT N, - `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, - `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, - `MEMBER_ID` BIGINT UNSIGNED NOT NULL, - `BOOK_ID` BIGINT UNSIGNED NOT NULL, - CONSTRAINT UQ_POST_UUID UNIQUE (POST_UUID) -); - -CREATE TABLE `MEMBER` -( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `MEMBER_UUID` VARCHAR(36) NOT NULL, `EMAIL` VARCHAR(255) NOT NULL, `PASSWORD` CHAR(60) NOT NULL, @@ -29,20 +11,52 @@ CREATE TABLE `MEMBER` CONSTRAINT UQ_NICKNAME UNIQUE (NICKNAME) ); +CREATE TABLE `BOOK` +( + `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `ISBN_NO` VARCHAR(24) NULL, + `BOOK_NAME` VARCHAR(1200) NOT NULL, + `BOOK_DETAILS` TEXT NULL, + `AUTHOR` VARCHAR(1000) NULL, + `PUBLISHER` VARCHAR(1000) NULL, + `BOOK_THUMB_URL` VARCHAR(1000) NULL +); + CREATE TABLE `ATTACH` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `FILE_NAME` VARCHAR(36) NULL, `ORG_FILE_NAME` VARCHAR(255) NULL, `FILE_EXT` VARCHAR(4) NULL, `FILE_DATA` BLOB NULL, `FILE_SIZE` INT UNSIGNED NULL, `BOOK_ID` BIGINT UNSIGNED NOT NULL + CONSTRAINT `FK_BOOK_TO_ATTACH_1` FOREIGN KEY (`BOOK_ID`) REFERENCES `BOOK` (`ID`) +); + +CREATE TABLE `POST` +( + `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `POST_UUID` VARCHAR(36) NOT NULL, + `TITLE` VARCHAR(150) NOT NULL, + `CONTENT` TEXT NULL, + `READING_STATE` VARCHAR(5) NULL, + `READING_START_DATE` DATETIME NULL, + `READING_END_DATE` DATETIME NULL, + `RATING` DECIMAL(2, 1) NOT NULL DEFAULT 0.0, + `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT 'N', + `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, + `MEMBER_ID` BIGINT UNSIGNED NOT NULL, + `BOOK_ID` BIGINT UNSIGNED NOT NULL, + CONSTRAINT `UQ_POST_UUID` UNIQUE (POST_UUID), + CONSTRAINT `FK_MEMBER_TO_POST_1` FOREIGN KEY (`MEMBER_ID`) REFERENCES `MEMBER` (`ID`), + CONSTRAINT `FK_BOOK_TO_POST_1` FOREIGN KEY (`BOOK_ID`) REFERENCES `BOOK` (`ID`) ); CREATE TABLE `COMMENT` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `COMMENT_CONTENT` VARCHAR(800) NOT NULL, `REGIST_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL, @@ -50,110 +64,25 @@ CREATE TABLE `COMMENT` `PARENT_COMMENT_ID` BIGINT UNSIGNED NULL, `POST_ID` BIGINT UNSIGNED NOT NULL, `COMMENTER_ID` BIGINT UNSIGNED NOT NULL, -); - -CREATE TABLE `BOOK` -( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, - `ISBN_NO` VARCHAR(24) NULL, - `BOOK_NAME` VARCHAR(1200) NOT NULL, - `BOOK_DETAILS` TEXT NULL, - `AUTHOR` VARCHAR(1000) NULL, - `PUBLISHER` VARCHAR(1000) NULL, - `BOOK_THUMB_URL` VARCHAR(1000) NULL + CONSTRAINT `FK_COMMENT_TO_COMMENT_1` FOREIGN KEY (`PARENT_COMMENT_ID`) REFERENCES `COMMENT` (`ID`), + CONSTRAINT `FK_POST_TO_COMMENT_1` FOREIGN KEY (`POST_ID`) REFERENCES `POST` (`ID`), + CONSTRAINT `FK_MEMBER_TO_COMMENT_1` FOREIGN KEY (`COMMENTER_ID`) REFERENCES `MEMBER` (`ID`) ); CREATE TABLE `LIKE` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `BOOK_ID` BIGINT UNSIGNED NOT NULL, `MEMBER_ID` BIGINT UNSIGNED NOT NULL, + CONSTRAINT `FK_POST_TO_LIKE_1` FOREIGN KEY (`BOOK_ID`) REFERENCES `POST` (`ID`), + CONSTRAINT `FK_MEMBER_TO_LIKE_1` FOREIGN KEY (`MEMBER_ID`) REFERENCES `MEMBER` (`ID`) ); CREATE TABLE `BOOKMARK` ( - `ID` BIGINT UNSIGNED NOT NULL PRIMARY KEY, + `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `BOOK_ID` BIGINT UNSIGNED NOT NULL, `MEMBER_ID` BIGINT UNSIGNED NOT NULL, -); - - -ALTER TABLE `POST` - ADD CONSTRAINT `FK_MEMBER_TO_POST_1` FOREIGN KEY ( - `MEMBER_ID` - ) - REFERENCES `MEMBER` ( - `ID` - ); - -ALTER TABLE `POST` - ADD CONSTRAINT `FK_BOOK_TO_POST_1` FOREIGN KEY ( - `BOOK_ID` - ) - REFERENCES `BOOK` ( - `ID` - ); - -ALTER TABLE `ATTACH` - ADD CONSTRAINT `FK_BOOK_TO_ATTACH_1` FOREIGN KEY ( - `BOOK_ID` - ) - REFERENCES `BOOK` ( - `ID` - ); - -ALTER TABLE `COMMENT` - ADD CONSTRAINT `FK_COMMENT_TO_COMMENT_1` FOREIGN KEY ( - `PARENT_COMMENT_ID` - ) - REFERENCES `COMMENT` ( - `ID` - ); - -ALTER TABLE `COMMENT` - ADD CONSTRAINT `FK_POST_TO_COMMENT_1` FOREIGN KEY ( - `POST_ID` - ) - REFERENCES `POST` ( - `ID` - ); - -ALTER TABLE `COMMENT` - ADD CONSTRAINT `FK_MEMBER_TO_COMMENT_1` FOREIGN KEY ( - `COMMENTER_ID` - ) - REFERENCES `MEMBER` ( - `ID` - ); - -ALTER TABLE `LIKE` - ADD CONSTRAINT `FK_POST_TO_LIKE_1` FOREIGN KEY ( - `BOOK_ID` - ) - REFERENCES `POST` ( - `ID` - ); - -ALTER TABLE `LIKE` - ADD CONSTRAINT `FK_MEMBER_TO_LIKE_1` FOREIGN KEY ( - `MEMBER_ID` - ) - REFERENCES `MEMBER` ( - `ID` - ); - -ALTER TABLE `BOOKMARK` - ADD CONSTRAINT `FK_POST_TO_BOOKMARK_1` FOREIGN KEY ( - `POST_ID` - ) - REFERENCES `POST` ( - `ID` - ); - -ALTER TABLE `BOOKMARK` - ADD CONSTRAINT `FK_MEMBER_TO_BOOKMARK_1` FOREIGN KEY ( - `MEMBER_ID` - ) - REFERENCES `MEMBER` ( - `ID` - ); \ No newline at end of file + CONSTRAINT `FK_POST_TO_BOOKMARK_1` FOREIGN KEY (`POST_ID`) REFERENCES `POST` (`ID`), + CONSTRAINT `FK_MEMBER_TO_BOOKMARK_1` FOREIGN KEY (`MEMBER_ID`) REFERENCES `MEMBER` (`ID`) +); \ No newline at end of file From 6d3b9925b051abafc31fa48c704465939ec606d4 Mon Sep 17 00:00:00 2001 From: dani820 Date: Sat, 28 Sep 2024 17:58:16 +0900 Subject: [PATCH 5/5] =?UTF-8?q?refactor:=20=EC=9D=B8=EB=8D=B1=EC=8A=A4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=A2=8B=EC=95=84=EC=9A=94,?= =?UTF-8?q?=20=EB=B6=81=EB=A7=88=ED=81=AC=20=ED=85=8C=EC=9D=B4=EB=B8=94=20?= =?UTF-8?q?=EB=82=B4=20=EC=98=A4=EA=B8=B0=EC=9E=AC=EB=90=9C=20id=20?= =?UTF-8?q?=EC=BB=AC=EB=9F=BC=EB=AA=85=20=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/sql/InMyBook.sql | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/resources/sql/InMyBook.sql b/src/main/resources/sql/InMyBook.sql index ce386f2..a01a786 100644 --- a/src/main/resources/sql/InMyBook.sql +++ b/src/main/resources/sql/InMyBook.sql @@ -19,7 +19,9 @@ CREATE TABLE `BOOK` `BOOK_DETAILS` TEXT NULL, `AUTHOR` VARCHAR(1000) NULL, `PUBLISHER` VARCHAR(1000) NULL, - `BOOK_THUMB_URL` VARCHAR(1000) NULL + `BOOK_THUMB_URL` VARCHAR(1000) NULL, + INDEX idx_book_book_name(BOOK_NAME), + INDEX idx_book_author(AUTHOR) ); CREATE TABLE `ATTACH` @@ -51,7 +53,11 @@ CREATE TABLE `POST` `BOOK_ID` BIGINT UNSIGNED NOT NULL, CONSTRAINT `UQ_POST_UUID` UNIQUE (POST_UUID), CONSTRAINT `FK_MEMBER_TO_POST_1` FOREIGN KEY (`MEMBER_ID`) REFERENCES `MEMBER` (`ID`), - CONSTRAINT `FK_BOOK_TO_POST_1` FOREIGN KEY (`BOOK_ID`) REFERENCES `BOOK` (`ID`) + CONSTRAINT `FK_BOOK_TO_POST_1` FOREIGN KEY (`BOOK_ID`) REFERENCES `BOOK` (`ID`), + INDEX idx_post_post_uuid_member_id_post_id(POST_UUID, MEMBER_ID, POST_ID, UPDATE_DATE), + INDEX idx_post_title(TITLE), + INDEX idx_post_update_date(UPDATE_DATE), + INDEX idx_post_member_id_update_date(MEMBER_ID, UPDATE_DATE) ); CREATE TABLE `COMMENT` @@ -66,22 +72,23 @@ CREATE TABLE `COMMENT` `COMMENTER_ID` BIGINT UNSIGNED NOT NULL, CONSTRAINT `FK_COMMENT_TO_COMMENT_1` FOREIGN KEY (`PARENT_COMMENT_ID`) REFERENCES `COMMENT` (`ID`), CONSTRAINT `FK_POST_TO_COMMENT_1` FOREIGN KEY (`POST_ID`) REFERENCES `POST` (`ID`), - CONSTRAINT `FK_MEMBER_TO_COMMENT_1` FOREIGN KEY (`COMMENTER_ID`) REFERENCES `MEMBER` (`ID`) + CONSTRAINT `FK_MEMBER_TO_COMMENT_1` FOREIGN KEY (`COMMENTER_ID`) REFERENCES `MEMBER` (`ID`), + INDEX idx_comment_update_date(UPDATE_DATE) ); CREATE TABLE `LIKE` ( `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `BOOK_ID` BIGINT UNSIGNED NOT NULL, + `POST_ID` BIGINT UNSIGNED NOT NULL, `MEMBER_ID` BIGINT UNSIGNED NOT NULL, - CONSTRAINT `FK_POST_TO_LIKE_1` FOREIGN KEY (`BOOK_ID`) REFERENCES `POST` (`ID`), + CONSTRAINT `FK_POST_TO_LIKE_1` FOREIGN KEY (`POST_ID`) REFERENCES `POST` (`ID`), CONSTRAINT `FK_MEMBER_TO_LIKE_1` FOREIGN KEY (`MEMBER_ID`) REFERENCES `MEMBER` (`ID`) ); CREATE TABLE `BOOKMARK` ( `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `BOOK_ID` BIGINT UNSIGNED NOT NULL, + `POST_ID` BIGINT UNSIGNED NOT NULL, `MEMBER_ID` BIGINT UNSIGNED NOT NULL, CONSTRAINT `FK_POST_TO_BOOKMARK_1` FOREIGN KEY (`POST_ID`) REFERENCES `POST` (`ID`), CONSTRAINT `FK_MEMBER_TO_BOOKMARK_1` FOREIGN KEY (`MEMBER_ID`) REFERENCES `MEMBER` (`ID`)