포스트

corou : 데이터베이스

다시

바빴던 2주가 지나갔다. 다행히 자격증 시험도 무난하게 합격한 것 같고, 통역도 잘 마무리하여 코딩에 집중할 시간이 확보됐다.

그동안 SQL을 열심히 공부했으니 실전에서 사용할 때가 된 것 같다. 자격증을 준비할 때는 실습을 할 기회가 없었어서 인터넷을 뒤져서 사용법을 찾아봤는데, 기존에 MongoDB도 CLI로 조작을 했어서 그런지 큰 어려움 없이 사용할 수 있었다.

sql

user
지금 보니 생년월일에 NOT NULL을 넣는 것을 깜빡했다

사용자 테이블을 만들고, 만들어뒀던 서버 코드에서 이를 접근 가능하도록 만들었다.

db

개인 테스팅을 하여 익숙해진 뒤 클라우드에 올려 같이 작업하는 프론트 쪽에서도 접근이 가능하게 해야겠다는 생각이 들어, MongoDB Atlas와 같은 클라우드 서비스가 mySQL로 존재하는지 찾아보니 AWS RDS와 heroku를 많이 사용하는 것 같아서 이를 사용할 예정이다.

관계

외래키를 가져오는 방법과 관계의 카디널리티를 설정하는 방법 또한 확인해보았다.

외래키는 두 가지 방법으로 등록할 수 있으며 첫 방법은 다음과 같이 설정을 할 수 있다:

  • 부모 테이블 생성
1
2
3
4
5
6
7
CREATE TABLE user(
    user_key INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    username VARCHAR(255) NOT NULL,
    birth_date DATE,
    gender CHAR(1) NOT NULL);
  • 자식 테이블 생성 시 외래키 설정하여 생성
1
2
3
4
5
6
7
8
9
10
11
12
mysql> CREATE TABLE address(
    addr_key INT AUTO_INCREMENT PRIMARY KEY,
    user_key INT,
    name VARCHAR(255) NOT NULL,
    zip INT NOT NULL,
    addr VARCHAR(255) NOT NULL,
    addr_detail VARCHAR(255) NOT NULL,
    tel VARCHAR(255) NOT NULL,
    req VARCHAR(255),
    is_default CHAR(1),
    FOREIGN KEY (user_key) REFERENCES user(user_key)
);

두 번째 방법은 이미 생성한 테이블에 추가하는 방법이다:

  • 자식 테이블 생성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    mysql> CREATE TABLE address(
      addr_key INT AUTO_INCREMENT PRIMARY KEY,
      user_key INT,
      name VARCHAR(255) NOT NULL,
      zip INT NOT NULL,
      addr VARCHAR(255) NOT NULL,
      addr_detail VARCHAR(255) NOT NULL,
      tel VARCHAR(255) NOT NULL,
      req VARCHAR(255),
      is_default CHAR(1),
    );
    
  • 외래키 추가
    1
    2
    3
    
    ALTER TABLE address
    ADD CONSTRAINT fk_user
    FOREIGN KEY (user_key) REFERENCES user(user_key);  
    

    erd

sql-relation

캡쳐된 엔터티들이 제대로 생성된 것을 볼 수 있다.


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.