개발/국비 Spring Boot Project

Spring Boot 프로젝트 13일차[20241017]

0720kmc 2024. 10. 17. 20:59

Spring Boot 프로젝트 13일차. 논리/물리 모델링 작성 후 팀원들과 회의를 통해 누락된 부분을 보충하거나 잘못된 부분을 수정하는 시간을 가졌습니다. 회의가 끝난 후 나온 결과물을 토대로 실제 테이블 생성하는 쿼리문과 erd까지 작성하였습니다. 

 

📌작성쿼리문

제가 작성한 쿼리문은 입양/임시보호/후기, 봉사/봉사후기 페이지와 관련된 테이블들을 만들었습니다.

대표적으로 게시글/댓글/게시글신고/댓글신고 테이블 및 신청서 테이블을 작성하였습니다.

-- 입양게시글 테이블
DROP TABLE TBL_ADOPT CASCADE CONSTRAINTS;

CREATE TABLE TBL_ADOPT(
   ADOPT_NO NUMBER PRIMARY KEY,				-- 게시글 번호 PK
   ADOPT_PERIODSTART DATE NOT NULL,			-- 입양시작일
   ADOPT_PERIODEND DATE NOT NULL,			-- 입양종료일
   ADOPT_BREAD VARCHAR2(1000) NOT NULL,			-- 견종
   ADOPT_NEUTERING CHAR(1) NOT NULL,			-- 중성화 여부
   ADOPT_GENDER CHAR(1) NOT NULL,			-- 성별
   ADOPT_WEIGHT VARCHAR2(1000) NOT NULL,		-- 몸무게
   ADOPT_BIRTH DATE NOT NULL,				-- 유기견 생일
   ADOPT_INTRODUCE VARCHAR2(1000) NOT NULL,		-- 한줄소개
   ADOPT_TITLE VARCHAR2(1000) NOT NULL,			-- 글제목
   ADOPT_CONTENT VARCHAR2(1000) NOT NULL,		-- 글내용
   ADOPT_REGIDATE DATE DEFAULT SYSDATE,		-- 작성일
   ADOPT_UPDATEDATE DATE DEFAULT SYSDATE,		-- 수정일	
   ADOPT_PRICTURE VARCHAR2(1000), 			-- 사진 FK		-- 사진/동영상 
   CENTERMEMBER_NO NUMBER						-- 센터회원 FK		-- 작성자
);

-- 외래 키 제약 조건 추가
ALTER TABLE TBL_ADOPT 
ADD CONSTRAINT FK_ADOPT_CENTERMEMBER 
FOREIGN KEY (CENTERMEMBER_NO) 
REFERENCES TBL_CENTERMEMBER(CENTERMEMBER_NO);

-- 조회
SELECT * FROM TBL_ADOPT;

-- 입양게시글 댓글 테이블
DROP TABLE TBL_ADOPT_COMMENT CASCADE CONSTRAINTS;

CREATE TABLE TBL_ADOPT_COMMENT(
	ADOPT_COMMENT_NO NUMBER PRIMARY KEY,		-- 입양 게시글 댓글 번호 PK
	ADOPT_COMMENT VARCHAR2(1000) NOT NULL,		-- 댓글 내용
	ADOPT_COMMENT_REGIDATE DATE DEFAULT SYSDATE,	-- 댓글 작성일
	ADOPT_COMMENT_WRITER NUMBER NOT NULL,		-- 댓글 작성자
	ADOPT_COMMENT_UPDATEDATE DATE DEFAULT SYSDATE,	-- 수정일
	ADOPT_NO NUMBER 							-- ADOPT FK		-- 게시글 번호 FK
);

-- 외래 키 제약 조건 추가
ALTER TABLE TBL_ADOPT_COMMENT 
ADD CONSTRAINT FK_ADOPT_CONTENT_NO 
FOREIGN KEY (ADOPT_NO) 
REFERENCES TBL_ADOPT(ADOPT_NO);

-- 조회
SELECT * FROM TBL_ADOPT_COMMENT;

-- 입양게시글 신고 테이블
DROP TABLE TBL_ADOPT_CONTENT_REPORT CASCADE CONSTRAINTS;

CREATE TABLE TBL_ADOPT_CONTENT_REPORT(
	ADOPT_CONTENT_REPORT_NO NUMBER PRIMARY KEY,		-- 신고 번호 PK
	ADOPT_CONTENT_REPORT VARCHAR2(100) NOT NULL,		-- 신고 내용
	ADOPT_CONTENT_REPORT_REGIDATE DATE DEFAULT SYSDATE,	-- 신고일
	ADOPT_CONTENT_REPORT_WRITER NUMBER NOT NULL,		-- 신고자
	ADOPT_NO NUMBER 								-- ADOPT FK		-- 신고한 게시글
);

-- 외래 키 제약 조건 추가
ALTER TABLE TBL_ADOPT_CONTENT_REPORT 
ADD CONSTRAINT FK_ADOPT_CONTENT_REPORT_NO 
FOREIGN KEY (ADOPT_NO) 
REFERENCES TBL_ADOPT(ADOPT_NO);

-- 조회
SELECT * FROM TBL_ADOPT_CONTENT_REPORT;

-- 입양댓글 신고 테이블
DROP TABLE TBL_ADOPT_COMMENT_REPORT CASCADE CONSTRAINTS;

CREATE TABLE TBL_ADOPT_COMMENT_REPORT(
	ADOPT_COMMENT_REPORT_NO NUMBER PRIMARY KEY,		-- 신고 번호 PK
	ADOPT_COMMENT_REPORT VARCHAR2(100) NOT NULL,		-- 신고 내용
	ADOPT_COMMENT_REPORT_REGIDATE DATE DEFAULT SYSDATE,	-- 신고일
	ADOPT_COMMENT_REPORT_WRITER NUMBER NOT NULL,		-- 신고자
	ADOPT_COMMENT_NO NUMBER NOT NULL 				-- 댓글 번호 FK
);

-- 외래 키 제약 조건 추가
ALTER TABLE TBL_ADOPT_COMMENT_REPORT 
ADD CONSTRAINT FK_ADOPT_COMMENT_REPORT_NO 
FOREIGN KEY (ADOPT_COMMENT_NO) 
REFERENCES TBL_ADOPT_COMMENT(ADOPT_COMMENT_NO);

-- 조회
SELECT * FROM TBL_ADOPT_COMMENT_REPORT;

 

-- 입양신청서 테이블
DROP TABLE TBL_ADOPT_REQUEST CASCADE CONSTRAINTS;

CREATE TABLE TBL_ADOPT_REQUEST(
	ADOPT_REQUEST_NO NUMBER PRIMARY KEY,				-- 신청서 번호 PK
	ADOPT_REQUEST_NAME VARCHAR2(1000) NOT NULL,			-- 신청인
	ADOPT_REQUEST_PHONE VARCHAR2(1000) NOT NULL,			-- 연락처
	ADOPT_REQUEST_PHONE_SUB VARCHAR2(1000) NOT NULL,		-- 대체 연락처
	ADOPT_REQUEST_EMAIL VARCHAR2(1000) NOT NULL,			-- 이메일
	ADOPT_REQUEST_GENDER CHAR(1) NOT NULL,				-- 신청자 성별
	ADOPT_REQUEST_AGE VARCHAR2(1000) NOT NULL,			-- 신청자 생일	
	ADOPT_REQUEST_ZIPCODE VARCHAR2(1000) NOT NULL,		-- 우편번호
	ADOPT_REQUEST_ADDRESS VARCHAR2(1000) NOT NULL,			-- 주소
	ADOPT_REQUEST_ADDRESS_DETAIL VARCHAR2(1000) NOT NULL,	-- 상세주소
	ADOPT_REQUEST_JOB VARCHAR2(1000) NOT NULL,			-- 직업
	ADOPT_REQUEST_MARRY VARCHAR2(1000) NOT NULL,			-- 결혼여부
	ADOPT_REQUEST_INFO_AGREEMENT CHAR(1) NOT NULL,		-- 개인정보 수집 동의
	ADOPT_REQUEST_Q1 VARCHAR2(1000) NOT NULL,			-- 질문1~15
	ADOPT_REQUEST_Q2 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q3 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q4 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q5 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q6 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q7 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q8 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q9 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q10 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q11 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q12 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q13 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q14 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_Q15 VARCHAR2(1000) NOT NULL,
	ADOPT_REQUEST_ADOPT_AGREEMENT CHAR(1) NOT NULL,		-- 입양 동의
	ADOPT_NO NUMBER,								-- 신청한 게시글,
	MEMBER_NO NUMBER,								-- 일반회원 FK		-- 작성자
	CENTERMEMBER_NO NUMBER,								-- 일반회원 FK		-- 작성자
);

-- 외래 키 제약 조건 추가
ALTER TABLE TBL_ADOPT_REQUEST ADD CONSTRAINT FK_ADOPT_REQUEST_ADOPT_NO FOREIGN KEY (ADOPT_NO) REFERENCES TBL_ADOPT(ADOPT_NO);

ALTER TABLE TBL_ADOPT_REQUEST ADD CONSTRAINT FK_ADOPT_REQUEST_MEMBER_NO FOREIGN KEY (MEMBER_NO) REFERENCES TBL_MEMBER(MEMBER_NO);

ALTER TABLE TBL_ADOPT_REQUEST ADD CONSTRAINT FK_ADOPT_REQUEST_CENTERMEMBER_NO FOREIGN KEY (CENTERMEMBER_NO) REFERENCES TBL_CENTERMEMBER(CENTERMEMBER_NO);

 

-각 테이블마다 구분할 수 있도록 NO컬럼을 만들어 주었습니다.
-필수로 입력받아야하는 값들은 NOT NULL로 설정하였으며 성별이나 중성화 여부 등 T/F로 구분할 수 있는 컬럼은 CHAR(1)로 설정하였습니다.

-신청서는 회원과 센터회원 모두가 조회할 수 있도록 각 테이블과 FK로 연결하였습니다.

-파일 테이블 생성 후 수정 및 연결할 예정입니다.

 

📌ERD(정리전)

-ERD는 작성 및 관계만 연결해두었으며 추후에 수정 및 정리 할 예정입니다.