728x90
SpringFrameWork 게시판 만들기 팁
1. 회원가입과 로그인은 마지막에 구성해라.
(기간이 촉박하니 가장 중요한 사이트에 대한 걸 먼저 만들고 괜히 회원가입과 로그인에 시간을 뺏기지 말아라.)
2. 이메일주소로 계정찾기/ 질문 답변으로 패스워드 찾기 방식의 오류 언급
- 요새 아이디 같은 경우 이메일주소로 많이 사용. 그렇기에 이메일 주소로 아이디를 찾는 경우는 의미가 없다.
- 패스워드를 알려주는 것 자체가 보안실패. 보통 임시비밀번호를 발급하지 비밀번호를 알려주지 않는다.
- 그렇기에 회원가입에서 id와 email을 다 입력하게 하지 말고 email을 id로 사용하게 유도하라.
3. ERD 모델을 설계 할때 Aquerytool을 이용해보아라.(직관적이고 간편하다.)
4. DB에 긴 내용을 넣을 경우, VARCHAR 말고 TEXT를 이용하여라.
5. 게시판 table을 구성할 때, 등록날짜 외에도 수정날짜와 삭제날짜도 만들어 게시글 복구가능성에 대해서도 생각.
게시글을 삭제 하였을 때, 삭제날짜가 null이 아닌경우만 보여주면 삭제 된 게시글을 제외하고 보여줄 수 있다.
프로시저를 이용하여 삭제 된지 몇일이 지나면 DB에서도 삭제하게 만들어라.
6. Aws ec2 free tier를 이용하여 실제 서버를 구축하는 경험을 해보아라.
7. git add . 쓰지말고 정확히 너가 올리고 싶은 파일들을 올리고 commit 할 때도 너가 어떤 것들을 commit했는지 자세하게 써라.
Aquerytool 이용법을 구글에서 간단히 찾아 다음과 같이 ERD설계를 해보았다.
확실히 다른 ERD 설계 툴 보다 간편하고 직관적이다는 느낌을 받았다.
또, 모든테이블 생성 SQL이라는 버튼을 통해,
다음과 같이 자동으로 SQL구문을 완성시켜주는 걸 확인할 수 있었다.
DB 구성
-- board Table Create SQL
CREATE TABLE board
(
`board_id` INT NOT NULL AUTO_INCREMENT COMMENT '게시글ID',
`writer` VARCHAR(50) NOT NULL COMMENT '작성자',
`title` VARCHAR(50) NOT NULL COMMENT '제목',
`content` VARCHAR(1000) NOT NULL COMMENT '내용',
`regdate` DATETIME NOT NULL COMMENT '등록일자',
`updatedate` DATETIME NULL COMMENT '수정일자',
`deletedate` DATETIME NULL COMMENT '삭제일자',
PRIMARY KEY (board_id)
);
ALTER TABLE board COMMENT 'community(자유게시판) 게시글을 위한 테이블';
-- board Table Create SQL
CREATE TABLE album
(
`album_id` INT NOT NULL COMMENT '앨범ID',
`artwork_file` VARCHAR(100) NOT NULL COMMENT '앨범사진파일이름',
`title` VARCHAR(100) NOT NULL COMMENT '앨범제목',
`release` DATETIME NOT NULL COMMENT '발매날짜',
PRIMARY KEY (album_id)
);
ALTER TABLE album COMMENT '발매앨범에 관한 테이블';
-- board Table Create SQL
CREATE TABLE reply
(
`board_id` INT NOT NULL COMMENT '게시글ID',
`reply_id` INT NOT NULL AUTO_INCREMENT COMMENT '댓글ID',
`writer` VARCHAR(50) NOT NULL COMMENT '작성자',
`content` VARCHAR(1000) NOT NULL COMMENT '내용',
`regdate` DATETIME NOT NULL COMMENT '등록일자',
PRIMARY KEY (reply_id)
);
ALTER TABLE reply COMMENT '게시글에 대한 댓글 테이블';
ALTER TABLE reply
ADD CONSTRAINT FK_reply_board_id_board_board_id FOREIGN KEY (board_id)
REFERENCES board (board_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
-- board Table Create SQL
CREATE TABLE file
(
`file_id` INT NOT NULL AUTO_INCREMENT COMMENT '파일ID',
`board_id` INT NOT NULL COMMENT '게시글ID',
`filename` VARCHAR(100) NULL COMMENT '파일이름',
`regdate` DATETIME NOT NULL COMMENT '등록일자',
PRIMARY KEY (file_id)
);
ALTER TABLE file COMMENT '여러 개 파일 등록을 위한 테이블';
ALTER TABLE file
ADD CONSTRAINT FK_file_board_id_board_board_id FOREIGN KEY (board_id)
REFERENCES board (board_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
-- board Table Create SQL
CREATE TABLE song
(
`album_id` INT NOT NULL COMMENT '앨범ID',
`track_no` INT NOT NULL COMMENT '트랙번호',
`title` VARCHAR(100) NOT NULL COMMENT '트랙제목',
`song_file` VARCHAR(100) NULL COMMENT '노래파일 이름',
`lyric` TEXT NOT NULL COMMENT '가사'
);
ALTER TABLE song COMMENT '앨범 수록곡에 관한 테이블';
ALTER TABLE song
ADD CONSTRAINT FK_song_album_id_album_album_id FOREIGN KEY (album_id)
REFERENCES album (album_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
-- board Table Create SQL
CREATE TABLE member
(
`id` VARCHAR(50) NOT NULL COMMENT '아이디',
`pw` VARCHAR(100) NOT NULL COMMENT '비밀번호',
`zipcode` VARCHAR(10) NULL COMMENT '우편번호',
`address` VARCHAR(100) NULL COMMENT '주소',
`address_detail` VARCHAR(100) NULL COMMENT '상세주소',
`picture` VARCHAR(100) NULL COMMENT '사진파일이름',
`regdate` DATETIME NOT NULL COMMENT '가입일자',
PRIMARY KEY (id)
);
ALTER TABLE member COMMENT '회원에 관한 테이블';
ALTER TABLE member
ADD CONSTRAINT FK_member_id_board_writer FOREIGN KEY (id)
REFERENCES board (writer) ON DELETE RESTRICT ON UPDATE RESTRICT;
'TOY PROJECT > Music Archive V1.0(Spring)' 카테고리의 다른 글
[Mac/STS] 설치 및 환경설정 (0) | 2020.10.03 |
---|---|
[Mac/AWS] 학습 및 서버 구축 / RDS생성 및 Workbench 연동 (0) | 2020.10.02 |
[Spring] 토이 프로젝트 UI설계 완료 (0) | 2020.09.30 |
[Spring] 토이 프로젝트 UI설계 2일차 (0) | 2020.09.29 |
[Spring] 토이 프로젝트 개요 및 UI 설계 (0) | 2020.09.28 |
댓글