Spring掲示板の作成(2)-テープの作成

3442 ワード


これは基本的なフリー伝言板デバイスの設定で、添付ファイルは単独で1つのテーブルを作成し、複数の登録を許可します.
添付ファイルの順序は、1つの投稿に複数の添付ファイルをアップロードするときに順序を決定するために作成されます.
コメントも単独で作成しましたが、大きなコメントを単独で作成しようか悩んでいましたが、親のコメント番号もコラムで解決できるのでコラムだけ追加しました.△一般的にはどうすればいいですか.
私はVARCHAR 2が好きです.Java voでもStringで人を殴るスタイル(早急な修復が必要…)
キー値をNUMBERに設定したのは、文章を生成するときにキー値を+1に設定し、シーケンスを生成しないためです.
キー値がNOT NULLであるため、その他は記事登録時に有効性処理でブロックされるため、テーブルを設定するつもりはありません.

テーブル生成クエリー

/* 자유게시판 */
CREATE TABLE FREEBOARD (
	BOARD_NO NUMBER NOT NULL, /* 게시글번호 */
	TITLE VARCHAR2(100), /* 제목 */
	CONTENT CLOB, /* 내용 */
	WRITER VARCHAR2(100), /* 작성자 */
	REGDATE VARCHAR2(50), /* 작성일 */
	UPDATE_DATE VARCHAR2(50), /* 수정일 */
	DELETE_YN VARCHAR2(5) /* 삭제여부 */
);
COMMENT ON TABLE FREEBOARD IS '자유게시판';
COMMENT ON COLUMN FREEBOARD.BOARD_NO IS '게시글번호';
COMMENT ON COLUMN FREEBOARD.TITLE IS '제목';
COMMENT ON COLUMN FREEBOARD.CONTENT IS '내용';
COMMENT ON COLUMN FREEBOARD.WRITER IS '작성자';
COMMENT ON COLUMN FREEBOARD.REGDATE IS '작성일';
COMMENT ON COLUMN FREEBOARD.UPDATE_DATE IS '수정일';
COMMENT ON COLUMN FREEBOARD.DELETE_YN IS '삭제여부';
CREATE UNIQUE INDEX PK_FREEBOARD
	ON FREEBOARD (
		BOARD_NO ASC
	);
ALTER TABLE FREEBOARD
	ADD
		CONSTRAINT PK_FREEBOARD
		PRIMARY KEY (
			BOARD_NO
		);
/* 첨부파일 */
CREATE TABLE ATCHFILE (
	ATCHFILE_NO NUMBER NOT NULL, /* 첨부파일번호 */
	BOARD_NO NUMBER, /* 게시글번호 */
	SN VARCHAR2(5), /* 순번 */
	FILENAME VARCHAR2(1000), /* 파일이름 */
	EXTSN VARCHAR2(100), /* 확장자 */
	SAVE_FOLDER VARCHAR2(1000) /* 저장경로 */
);
COMMENT ON TABLE ATCHFILE IS '첨부파일';
COMMENT ON COLUMN ATCHFILE.ATCHFILE_NO IS '첨부파일번호';
COMMENT ON COLUMN ATCHFILE.BOARD_NO IS '게시글번호';
COMMENT ON COLUMN ATCHFILE.SN IS '순번';
COMMENT ON COLUMN ATCHFILE.FILENAME IS '파일이름';
COMMENT ON COLUMN ATCHFILE.EXTSN IS '확장자';
COMMENT ON COLUMN ATCHFILE.SAVE_FOLDER IS '저장경로';
CREATE UNIQUE INDEX PK_ATCHFILE
	ON ATCHFILE (
		ATCHFILE_NO ASC
	);
ALTER TABLE ATCHFILE
	ADD
		CONSTRAINT PK_ATCHFILE
		PRIMARY KEY (
			ATCHFILE_NO
		);
/* 댓글 */
CREATE TABLE FB_COMMENT (
	COMMENT_NO NUMBER NOT NULL, /* 댓글번호 */
	BOARD_NO NUMBER, /* 게시글번호 */
	WRITER VARCHAR2(100), /* 작성자 */
	REGDATE VARCHAR2(50), /* 작성일 */
	CONTENT VARCHAR2(1000), /* 내용 */
	UPDATE_DATE VARCHAR2(50), /* 수정일 */
	DELETE_YN VARCHAR2(5), /* 삭제여부 */
	P_COMMENT_NO VARCHAR2(50) /* 부모댓글번호 */
);
COMMENT ON TABLE FB_COMMENT IS '댓글';
COMMENT ON COLUMN FB_COMMENT.COMMENT_NO IS '댓글번호';
COMMENT ON COLUMN FB_COMMENT.BOARD_NO IS '게시글번호';
COMMENT ON COLUMN FB_COMMENT.WRITER IS '작성자';
COMMENT ON COLUMN FB_COMMENT.REGDATE IS '작성일';
COMMENT ON COLUMN FB_COMMENT.CONTENT IS '내용';
COMMENT ON COLUMN FB_COMMENT.UPDATE_DATE IS '수정일';
COMMENT ON COLUMN FB_COMMENT.DELETE_YN IS '삭제여부';
COMMENT ON COLUMN FB_COMMENT.P_COMMENT_NO IS '부모댓글번호';
CREATE UNIQUE INDEX PK_FB_COMMENT
	ON FB_COMMENT (
		COMMENT_NO ASC
	);
ALTER TABLE FB_COMMENT
	ADD
		CONSTRAINT PK_FB_COMMENT
		PRIMARY KEY (
			COMMENT_NO
		);
ALTER TABLE ATCHFILE
	ADD
		CONSTRAINT FK_FREEBOARD_TO_ATCHFILE
		FOREIGN KEY (
			BOARD_NO
		)
		REFERENCES FREEBOARD (
			BOARD_NO
		);
ALTER TABLE FB_COMMENT
	ADD
		CONSTRAINT FK_FREEBOARD_TO_FB_COMMENT
		FOREIGN KEY (
			BOARD_NO
		)
		REFERENCES FREEBOARD (
			BOARD_NO
		);