ERD CLOUD 실습용 테이블 스크립트

-- 회원 테이블
CREATE TABLE MEMBER (
  MEMBER_NO NUMBER PRIMARY KEY,
  USER_ID VARCHAR2(30) NOT NULL UNIQUE,
  USER_PWD VARCHAR2(100) NOT NULL,
  USER_NAME VARCHAR2(50) NOT NULL,
  EMAIL VARCHAR2(100),
  ENROLL_DATE DATE DEFAULT SYSDATE
);

-- 회원 상세정보 테이블 (자식 테이블, FPK)
CREATE TABLE MEMBER_DETAIL (
  MEMBER_NO NUMBER PRIMARY KEY,
  PHONE VARCHAR2(20),
  ADDRESS VARCHAR2(200),
  BIRTHDATE DATE,
  CONSTRAINT FK_MEMBER_DETAIL_MEMBER
    FOREIGN KEY (MEMBER_NO )
    REFERENCES MEMBER(MEMBER_NO )
);

-- 게시판 테이블
CREATE TABLE BOARD (
  BOARD_NO NUMBER PRIMARY KEY,
  TITLE VARCHAR2(200) NOT NULL,
  CONTENT CLOB,
  MEMBER_NO NUMBER NOT NULL,
  CREATE_DATE DATE DEFAULT SYSDATE,
  VIEW_COUNT NUMBER DEFAULT 0,
  CONSTRAINT FK_BOARD_MEMBER
    FOREIGN KEY (MEMBER_NO )
    REFERENCES MEMBER(MEMBER_NO )
);

-- 댓글 테이블
CREATE TABLE REPLY (
  REPLY_ID NUMBER PRIMARY KEY,
  BOARD_NO NUMBER NOT NULL,
  MEMBER_NO NUMBER NOT NULL,
  CONTENT VARCHAR2(500) NOT NULL,
  CREATE_DATE DATE DEFAULT SYSDATE,
  CONSTRAINT FK_REPLY_BOARD
    FOREIGN KEY (BOARD_NO)
    REFERENCES BOARD(BOARD_NO),
  CONSTRAINT FK_REPLY_MEMBER
    FOREIGN KEY (MEMBER_NO )
    REFERENCES MEMBER(MEMBER_NO )
);

-- 좋아요 테이블 (두 FK를 PK로 사용)
CREATE TABLE LIKES (
  MEMBER_NO NUMBER,
  BOARD_NO NUMBER,
  LIKE_DATE DATE DEFAULT SYSDATE,
  -- 두 FK 컬럼이 동시에 PK
  CONSTRAINT PK_LIKES PRIMARY KEY (MEMBER_NO , BOARD_NO),
  -- FK 제약조건
  CONSTRAINT FK_LIKES_MEMBER FOREIGN KEY (MEMBER_NO )
    REFERENCES MEMBER(MEMBER_NO ),
  CONSTRAINT FK_LIKES_BOARD FOREIGN KEY (BOARD_NO)
    REFERENCES BOARD(BOARD_NO)
);

Last updated