테이블 추가
CREATE TABLE "MEMBER" (
"MEMBER_NO" NUMBER NOT NULL,
"MEMBER_EMAIL" NVARCHAR2(50) NOT NULL,
"MEMBER_PW" NVARCHAR2(100) NOT NULL,
"MEMBER_NICKNAME" NVARCHAR2(10) NOT NULL,
"MEMBER_TEL" CHAR(11) NOT NULL,
"MEMBER_ADDRESS" NVARCHAR2(300) NULL,
"PROFILE_IMG" VARCHAR2(300) NULL,
"ENROLL_DATE" DATE DEFAULT SYSDATE NOT NULL,
"MEMBER_DEL_FL" CHAR(1) DEFAULT 'N' NOT NULL,
"AUTHORITY" NUMBER DEFAULT 1 NOT NULL
);
COMMENT ON COLUMN "MEMBER"."MEMBER_NO" IS '회원 번호(PK)';
COMMENT ON COLUMN "MEMBER"."MEMBER_EMAIL" IS '회원 이메일(ID 역할)';
COMMENT ON COLUMN "MEMBER"."MEMBER_PW" IS '회원 비밀번호(암호화)';
COMMENT ON COLUMN "MEMBER"."MEMBER_NICKNAME" IS '회원 닉네임';
COMMENT ON COLUMN "MEMBER"."MEMBER_TEL" IS '회원 전화 번호';
COMMENT ON COLUMN "MEMBER"."MEMBER_ADDRESS" IS '회원 주소';
COMMENT ON COLUMN "MEMBER"."PROFILE_IMG" IS '프로필 이미지';
COMMENT ON COLUMN "MEMBER"."ENROLL_DATE" IS '회원 가입일';
COMMENT ON COLUMN "MEMBER"."MEMBER_DEL_FL" IS '탈퇴 여부(Y,N)';
COMMENT ON COLUMN "MEMBER"."AUTHORITY" IS '권한(1:일반, 2:관리자)';
CREATE TABLE "UPLOAD_FILE" (
"FILE_NO" NUMBER NOT NULL,
"FILE_PATH" VARCHAR2(500) NOT NULL,
"FILE_ORIGINAL_NAME" VARCAHR2(300) NOT NULL,
"FILE_RENAME" VARCHAR2(100) NOT NULL,
"FILE_UPLOAD_DATE" DATE DEFAULT SYSDATE NOT NULL,
"MEMBER_NO" NUMBER NOT NULL
);
COMMENT ON COLUMN "UPLOAD_FILE"."FILE_NO" IS '파일 번호(PK)';
COMMENT ON COLUMN "UPLOAD_FILE"."FILE_PATH" IS '파일 요청 경로';
COMMENT ON COLUMN "UPLOAD_FILE"."FILE_ORIGINAL_NAME" IS '파일 원본명';
COMMENT ON COLUMN "UPLOAD_FILE"."FILE_RENAME" IS '파일 변경명';
COMMENT ON COLUMN "UPLOAD_FILE"."FILE_UPLOAD_DATE" IS '업로드 날짜';
COMMENT ON COLUMN "UPLOAD_FILE"."MEMBER_NO" IS '업로드한 회원 번호';
CREATE TABLE "BOARD" (
"BOARD_NO" NUMBER NOT NULL,
"BOARD_TITLE" NVARCHAR2(100) NOT NULL,
"BOARD_CONTENT" VARCHAR2(4000) NOT NULL,
"BOARD_WRITE_DATE" DATE DEFAULT SYSDATE NOT NULL,
"BOARD_UPDATE_DATE" DATE NULL,
"READ_COUNT" NUMBER DEFAULT 0 NOT NULL,
"BOARD_DEL_FL" CHAR(1) DEFAULT 'N' NOT NULL,
"BOARD_CODE" NUMBER NOT NULL,
"MEMBER_NO" NUMBER NOT NULL
);
COMMENT ON COLUMN "BOARD"."BOARD_NO" IS '게시글 번호(PK)';
COMMENT ON COLUMN "BOARD"."BOARD_TITLE" IS '게시글 제목';
COMMENT ON COLUMN "BOARD"."BOARD_CONTENT" IS '게시글 내용';
COMMENT ON COLUMN "BOARD"."BOARD_WRITE_DATE" IS '게시글 작성일';
COMMENT ON COLUMN "BOARD"."BOARD_UPDATE_DATE" IS '게시글 마지막 수정일';
COMMENT ON COLUMN "BOARD"."READ_COUNT" IS '조회수';
COMMENT ON COLUMN "BOARD"."BOARD_DEL_FL" IS '게시글 삭제 여부(Y/N)';
COMMENT ON COLUMN "BOARD"."BOARD_CODE" IS '게시판 종류 코드 번호';
COMMENT ON COLUMN "BOARD"."MEMBER_NO" IS '작성한 회원 번호(FK)';
CREATE TABLE "BOARD_TYPE" (
"BOARD_CODE" NUMBER NOT NULL,
"BOARD_NAME" NVARCHAR2(20) NOT NULL
);
COMMENT ON COLUMN "BOARD_TYPE"."BOARD_CODE" IS '게시판 종류 코드 번호';
COMMENT ON COLUMN "BOARD_TYPE"."BOARD_NAME" IS '게시판명';
CREATE TABLE "BOARD_LIKE" (
"MEMBER_NO" NUMBER NOT NULL,
"BOARD_NO" NUMBER NOT NULL
);
COMMENT ON COLUMN "BOARD_LIKE"."MEMBER_NO" IS '회원 번호(PK)';
COMMENT ON COLUMN "BOARD_LIKE"."BOARD_NO" IS '게시글 번호(PK)';
CREATE TABLE "BOARD_IMG" (
"IMG_NO" NUMBER NOT NULL,
"IMG_PATH" VARCHAR2(200) NOT NULL,
"IMG_ORIGINAL_NAME" NVARCHAR2(50) NOT NULL,
"IMG_RENAME" NVARCHAR2(50) NOT NULL,
"IMG_ORDER" NUMBER NULL,
"BOARD_NO" NUMBER NOT NULL
);
COMMENT ON COLUMN "BOARD_IMG"."IMG_NO" IS '이미지 번호(PK)';
COMMENT ON COLUMN "BOARD_IMG"."IMG_PATH" IS '이미지 요청 경로';
COMMENT ON COLUMN "BOARD_IMG"."IMG_ORIGINAL_NAME" IS '이미지 원본명';
COMMENT ON COLUMN "BOARD_IMG"."IMG_RENAME" IS '이미지 변경명';
COMMENT ON COLUMN "BOARD_IMG"."IMG_ORDER" IS '이미지 순서';
COMMENT ON COLUMN "BOARD_IMG"."BOARD_NO" IS '게시글 번호(PK)';
CREATE TABLE "COMMENT" (
"COMMENT_NO" NUMBER NOT NULL,
"COMMENT_CONTENT" VARCHAR2(4000) NOT NULL,
"COMMENT_WRITE_DATE" DATE DEFAULT SYSDATE NOT NULL,
"COMMENT_DEL_FL" CHAR(1) DEFAULT 'N' NOT NULL,
"BOARD_NO" NUMBER NOT NULL,
"MEMBER_NO" NUMBER NOT NULL,
"PARENT_COMMENT_NO" NUMBER NOT NULL
);
COMMENT ON COLUMN "COMMENT"."COMMENT_NO" IS '댓글 번호(PK)';
COMMENT ON COLUMN "COMMENT"."COMMENT_CONTENT" IS '댓글 내용';
COMMENT ON COLUMN "COMMENT"."COMMENT_WRITE_DATE" IS '댓글 작성일';
COMMENT ON COLUMN "COMMENT"."COMMENT_DEL_FL" IS '댓글 삭제 여부(Y/N)';
COMMENT ON COLUMN "COMMENT"."BOARD_NO" IS '게시글 번호(PK)';
COMMENT ON COLUMN "COMMENT"."MEMBER_NO" IS '회원 번호(PK)';
COMMENT ON COLUMN "COMMENT"."PARENT_COMMENT_NO" IS '부모 댓글 번호';
제약조건 추가
ALTER TABLE "MEMBER" ADD CONSTRAINT "PK_MEMBER" PRIMARY KEY (
"MEMBER_NO"
);
ALTER TABLE "UPLOAD_FILE" ADD CONSTRAINT "PK_UPLOAD_FILE" PRIMARY KEY (
"FILE_NO"
);
ALTER TABLE "BOARD" ADD CONSTRAINT "PK_BOARD" PRIMARY KEY (
"BOARD_NO"
);
ALTER TABLE "BOARD_TYPE" ADD CONSTRAINT "PK_BOARD_TYPE" PRIMARY KEY (
"BOARD_CODE"
);
ALTER TABLE "BOARD_LIKE" ADD CONSTRAINT "PK_BOARD_LIKE" PRIMARY KEY (
"MEMBER_NO",
"BOARD_NO"
);
ALTER TABLE "BOARD_IMG" ADD CONSTRAINT "PK_BOARD_IMG" PRIMARY KEY (
"IMG_NO"
);
ALTER TABLE "COMMENT" ADD CONSTRAINT "PK_COMMENT" PRIMARY KEY (
"COMMENT_NO"
);
ALTER TABLE "UPLOAD_FILE" ADD CONSTRAINT "FK_MEMBER_TO_UPLOAD_FILE_1" FOREIGN KEY (
"MEMBER_NO"
)
REFERENCES "MEMBER" (
"MEMBER_NO"
);
ALTER TABLE "BOARD" ADD CONSTRAINT "FK_BOARD_TYPE_TO_BOARD_1" FOREIGN KEY (
"BOARD_CODE"
)
REFERENCES "BOARD_TYPE" (
"BOARD_CODE"
);
ALTER TABLE "BOARD" ADD CONSTRAINT "FK_MEMBER_TO_BOARD_1" FOREIGN KEY (
"MEMBER_NO"
)
REFERENCES "MEMBER" (
"MEMBER_NO"
);
ALTER TABLE "BOARD_LIKE" ADD CONSTRAINT "FK_MEMBER_TO_BOARD_LIKE_1" FOREIGN KEY (
"MEMBER_NO"
)
REFERENCES "MEMBER" (
"MEMBER_NO"
);
ALTER TABLE "BOARD_LIKE" ADD CONSTRAINT "FK_BOARD_TO_BOARD_LIKE_1" FOREIGN KEY (
"BOARD_NO"
)
REFERENCES "BOARD" (
"BOARD_NO"
);
ALTER TABLE "BOARD_IMG" ADD CONSTRAINT "FK_BOARD_TO_BOARD_IMG_1" FOREIGN KEY (
"BOARD_NO"
)
REFERENCES "BOARD" (
"BOARD_NO"
);
ALTER TABLE "COMMENT" ADD CONSTRAINT "FK_BOARD_TO_COMMENT_1" FOREIGN KEY (
"BOARD_NO"
)
REFERENCES "BOARD" (
"BOARD_NO"
);
ALTER TABLE "COMMENT" ADD CONSTRAINT "FK_MEMBER_TO_COMMENT_1" FOREIGN KEY (
"MEMBER_NO"
)
REFERENCES "MEMBER" (
"MEMBER_NO"
);
ALTER TABLE "COMMENT" ADD CONSTRAINT "FK_COMMENT_TO_COMMENT_1" FOREIGN KEY (
"PARENT_COMMENT_NO"
)
REFERENCES "COMMENT" (
"COMMENT_NO"
);
ALTER TABLE "BOARD" ADD
CONSTRAINT "BOARD_DEL_CHECK"
CHECK("BOARD_DEL_FL" IN ('Y', 'N') );
ALTER TABLE "COMMENT" ADD
CONSTRAINT "COMMENT_DEL_CHECK"
CHECK("COMMENT_DEL_FL" IN ('Y', 'N') );
게시판 샘플 데이터 추가
CREATE SEQUENCE SEQ_BOARD_CODE NOCACHE;
INSERT INTO "BOARD_TYPE" VALUES(SEQ_BOARD_CODE.NEXTVAL, '공지 게시판');
INSERT INTO "BOARD_TYPE" VALUES(SEQ_BOARD_CODE.NEXTVAL, '정보 게시판');
INSERT INTO "BOARD_TYPE" VALUES(SEQ_BOARD_CODE.NEXTVAL, '자유 게시판');
COMMIT;
SELECT * FROM BOARD_TYPE;
게시글 샘플 데이터 추가
CREATE SEQUENCE SEQ_BOARD_NO NOCACHE;
SELECT * FROM "MEMBER";
BEGIN
FOR I IN 1..2000 LOOP
INSERT INTO "BOARD"
VALUES(SEQ_BOARD_NO.NEXTVAL,
SEQ_BOARD_NO.CURRVAL || '번째 게시글',
SEQ_BOARD_NO.CURRVAL || '번째 게시글 내용 입니다',
DEFAULT, DEFAULT, DEFAULT, DEFAULT,
CEIL( DBMS_RANDOM.VALUE(0,3) ),
1
);
END LOOP;
END;
COMMIT;
SELECT BOARD_CODE, COUNT(*)
FROM "BOARD"
GROUP BY BOARD_CODE
ORDER BY BOARD_CODE;
댓글 샘플 데이터 추가
ALTER TABLE "COMMENT"
MODIFY PARENT_COMMENT_NO NUMBER NULL;
CREATE SEQUENCE SEQ_COMMENT_NO NOCACHE;
BEGIN
FOR I IN 1..2000 LOOP
INSERT INTO "COMMENT"
VALUES(
SEQ_COMMENT_NO.NEXTVAL,
SEQ_COMMENT_NO.CURRVAL || '번째 댓글 입니다',
DEFAULT, DEFAULT,
CEIL( DBMS_RANDOM.VALUE(0, 2000) ),
2,
NULL
);
END LOOP;
END;
;
COMMIT;
SELECT MIN(BOARD_NO), MAX(BOARD_NO) FROM "BOARD";
SELECT BOARD_NO, COUNT(*)
FROM "COMMENT"
GROUP BY BOARD_NO
ORDER BY BOARD_NO;
게시글 이미지, 좋아요 샘플 데이터 추가
CREATE SEQUENCE SEQ_IMG_NO NOCACHE;
INSERT INTO "BOARD_IMG" VALUES(
SEQ_IMG_NO.NEXTVAL, '/images/board/', '원본1.jpg', 'test1.jpg', 0, 1998
);
INSERT INTO "BOARD_IMG" VALUES(
SEQ_IMG_NO.NEXTVAL, '/images/board/', '원본2.jpg', 'test2.jpg', 1, 1998
);
INSERT INTO "BOARD_IMG" VALUES(
SEQ_IMG_NO.NEXTVAL, '/images/board/', '원본3.jpg', 'test3.jpg', 2, 1998
);
INSERT INTO "BOARD_IMG" VALUES(
SEQ_IMG_NO.NEXTVAL, '/images/board/', '원본4.jpg', 'test4.jpg', 3, 1998
);
INSERT INTO "BOARD_IMG" VALUES(
SEQ_IMG_NO.NEXTVAL, '/images/board/', '원본5.jpg', 'test5.jpg', 4, 1998
);
COMMIT;
INSERT INTO "BOARD_LIKE"
VALUES(1, 1998);
COMMIT;