본문 바로가기
CS/SQL

dbdiagram.io 사용

by abcodef 2021. 11. 3.

A Free Database Designer for Developers and Analysts

  • dbdiagram.io 사용해서 ERD 그림
  • DB 스키마를 이미 그린 상태라 SQL 쿼리문을 툴에 넣어서 ERD를 자동 생성함

게시판 제작을 위해 작성한 SQL 쿼리

-- study.sg_user definition

CREATE TABLE `sg_user` (
  `USER_PW` varchar(100) NOT NULL COMMENT '사용자 비밀번호',
  `USER_NM` varchar(50) NOT NULL COMMENT '사용자 이름',
  `USER_EMAIL` varchar(50) NOT NULL COMMENT '사용자 이메일',
  `USER_PN` varchar(13) NOT NULL COMMENT '사용자 휴대폰 번호(- 포함)',
  `USER_BD` varchar(10) NOT NULL COMMENT '사용자 생년월일(- 포함)',
  `USER_GENDER` int(1) NOT NULL COMMENT '사용자 성별(0:남성, 1:여성)',
  `REG_DT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '회원가입 날짜',
  `ADMIN_CHK` int(1) NOT NULL DEFAULT 0 COMMENT '관리자 구분(0: 일반회원, 1: 관리자)',
  `USER_ID` varchar(50) NOT NULL,
  PRIMARY KEY (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='사용자 정보';

-- study.sg_notice definition

CREATE TABLE `sg_notice` (
  `NO` int(10) NOT NULL COMMENT '게시물 번호',
  `TITLE` varchar(200) NOT NULL COMMENT '게시물 제목',
  `WRITER` varchar(50) NOT NULL COMMENT '게시물 저자',
  `REG_DT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '게시물 등록일',
  `VIEWS` int(10) NOT NULL DEFAULT 0,
  `CONTENT` text NOT NULL COMMENT '게시물 내용',
  `FILE_NM` varchar(100) DEFAULT NULL COMMENT '첨부파일 이름',
  PRIMARY KEY (`NO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='공지사항';

-- study.sg_board definition

CREATE TABLE `sg_board` (
  `NO` int(10) NOT NULL COMMENT '게시물 번호',
  `TITLE` varchar(200) NOT NULL COMMENT '게시물 번호',
  `WRITER` varchar(50) NOT NULL COMMENT '게시물 저자',
  `REG_DT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '게시물 등록일',
  `VIEWS` int(10) NOT NULL DEFAULT 0 COMMENT '게시물 조회수',
  `CONTENT` text NOT NULL COMMENT '게시물 내용',
  `FILE_NM` varchar(100) DEFAULT NULL COMMENT '첨부파일 이름',
  PRIMARY KEY (`NO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='자유게시판';

-- study.sg_board_comment definition

CREATE TABLE `sg_board_comment` (
  `NO` int(20) NOT NULL COMMENT '댓글 번호',
  `COMMENT_GRN` int(10) NOT NULL COMMENT '댓글 그룹 번호',
  `BOARD_NO` int(10) NOT NULL COMMENT '게시물 번호',
  `WRITER` varchar(50) NOT NULL COMMENT '댓글 저자',
  `WRITER_PW` varchar(100) DEFAULT NULL COMMENT '댓글 저자의 비밀번호(비회원)',
  `COMMENT` text NOT NULL COMMENT '댓글 내용',
  `REG_DT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '댓글 등록일',
  `USER_CHK` int(1) NOT NULL COMMENT '회원 구분(0: 비회원, 1: 회원)',
  `DEL_CHK` int(1) NOT NULL DEFAULT 0 COMMENT '삭제 구분(0: 삭제 안된 댓글, 1: 삭제된 댓글)',
  PRIMARY KEY (`NO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='자유게시판 댓글';

-- study.sg_file definition

CREATE TABLE `sg_file` (
  `FILE_NM` varchar(100) NOT NULL COMMENT '첨부파일명',
  `FILE_ORNM` varchar(50) NOT NULL COMMENT '첨부파일 원본명',
  `FILE_SIZE` int(10) NOT NULL COMMENT '첨부파일 사이즈(byte)',
  `FILE_PATH` varchar(200) NOT NULL COMMENT '첨부파일 경로',
  PRIMARY KEY (`FILE_NM`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='첨부파일 정보';
  • DBeaver를 사용해 테이블을 생성한 후, SQL문을 추출함
  • 위 SQL문을 사용해서 ERD를 생성함

사용방법

  1. 사이트에 접속후 로그인
  • 로그인을 해야 SQL 쿼리를 활용해서 제작하거나, SQL 쿼리문을 추출할수 있음

  1. Import 클릭 후, Import from MySQL 클릭
  • 화면과 같은 창이 뜨면 작성했던 쿼리문 입력
  • 입력 후 Submit 클릭

  1. 작성된 ERD 확인
  • 등록일을 의미하는 REG_DT(timestamp)는 2번에서 문제가 생겨서 ERD 생성후 좌측 입력창에서 아래 코드를 따로 추가함
"REG_DT" timestamp [not null, note: '등록일']
  • 작성된 ERD 확인

완성된 ERD

댓글