project

[웹게시판] (2) DB 생성

cheda 2021. 11. 7. 18:47

APM 구축은 완료된 상태이다.

2021.11.07 - [project] - [APM 구축] (1) Apache 2.4 설치

 

[APM 구축] (1) Apache 2.4 설치

구축환경: Window10 64bit Apache: 월드 와이드 앱 서버용 소프트웨어 참고한 블로그: https://jimnong.tistory.com/612  [꼼꼼한 블로그] [윈도우10 64bit] APM Apache 2.4 아파치 설치과정 정리(웹서버 구축) I..

chedablog.tistory.com

 

1. 게시판 DB(board_db) 생성

  • cmd > mysql -u root -p
      → root 계정으로 mysql 접속

 

  • mysql > CREATE DATABASE board_db default CHARACTER SET UTF8;
      → board_db라는 데이터베이스 생성, 한글을 사용할 수 있는 UTF8로 문자열 저장

 

  • mysql > GRANT ALL PRIVILEGES ON board_db.* TO board_user@localhost IDENTIFIED BY 'password';
      → GRANT: 사용자에게 데이터 베이스의 사용 권한 적용
      → ALL PRIVILEGES: db 삭제 권한을 포함한 데이터베이스에 대한 모든 권한
      → ON board_db.*: 권한 대상은 board_dbboard_db.* 는 board_db의 모든 테이블을 의미
      → TO board_user@localhost: local에서만 연결 가능, 권한을 받는 사용자는 board_user(없다면 새롭게 생성)
          → locahost가 아닌 외부에서 접근하고 싶다면 접근 권한을 따로 설정해야 한다.
      → IDENTIFIED BY 'password': 사용자 비밀번호 설정

 

  • mysql > EXIT;

 

  • cmd > mysql -u board_user -p
      → 게시판 사용자(board_user)mysql 접속

 

  • mysql > USE board_db;
      → board_db 사용

 

  • 게시판 테이블 생성
    mysql> create table board (
          -> number int unsigned not null primary key auto_increment,
          -> title varchar(150) not null,
          -> content text not null,
          -> id varchar(20) not null,
          -> password varchar(20) not null,
          -> date datetime not null,
          -> hit int unsigned not null default 0
          -> file_dir_name varchar(255) null,
          -> file_name varchar(255) null
          -> );
  • number 칼럼(게시글 번호): 데이터 타입(int unsigned), not null(자료를 입력할 때 항상 값을 넣어주어야 한다), 기본키 설정(primary key), 자동 인덱스 증가(auto_increment)
    → auto_increment: 테이블에 새로운 레코드가 들어올 때 사용자가 입력하지 않아도 number 값 중 가장 큰 값에 +1한 값을 설정해주어 중복된 값이 없도록 한다.
  • title 칼럼(게시글 제목), 데이터 타입(varchar(150)), not null(자료를 입력할 때 항상 값을 넣어주어야 한다
  • content 칼럼(게시글 내용)
  • id 칼럼(게시판 작성자)
  • password 칼럼(작성자 비밀번호)
  • date 칼럼(작성날짜)
  • hit 칼럼(조회수), default는 아무런 값을 입력하지 않을 때 자동으로 입력되는 값
  • file_dir_name(첨부파일의 디렉토리와 파일이름)
  • file_name(첨부파일의 이름)

 

2. 회원 DB(member_db) 생성

  • cmd > mysql -u root -p
    → root 계정으로 mysql 접속
  • mysql > CREATE DATABASE member_db default CHARACTER SET UTF8;
  • mysql > GRANT ALL PRIVILEGES ON member_db.* TO member_user@localhost IDENTIFIED BY 'password';
  • mysql > EXIT;

 

  • cmd > mysql -u member_user -p
  • mysql > use member_db;

 

  • 멤버 테이블 생성
    mysql> create table member (
          -> id text not null,
          -> pw text not null,
          -> email text not null,
          -> date datetime not null,
          -> permit tinyint(3) unsigned
          -> );
  •  id: 아이디
  • pw: 패스워드
  • email: 이메일 주소
  • date: 날짜
  • permit: 권한

 

3. 댓글 DB (comment_db) 생성

  • cmd > mysql -u root -p
    → root 계정으로 mysql 접속
  • mysql > CREATE DATABASE comment_db default CHARACTER SET UTF8;
  • mysql > GRANT ALL PRIVILEGES ON comment_db.* TO comment_user@localhost IDENTIFIED BY 'password';
  • mysql > EXIT;

 

 

  • cmd > mysql -u comment_user -p
  • mysql > use comment_db;

 

  • 댓글 테이블 생성
    mysql> create table comment (
          -> number int unsigned not null primary key auto_increment,
          -> board_number int unsigned not null,
          -> id varchar(20) not null,
          -> content text not null,
          -> date datetime not null,
          -> parent_number int unsigned not null default 0
          -> );
  • number: 댓글 번호
  • board_number: 게시판 번호
  • id: 아이디
  • content: 댓글 내용
  • date: 날짜
  • parent_number: 부모 댓글 번호