Dandy Now!
  • [개발자의품격][부트캠프][1기][27차시] MySQL #1 | 테이블 생성, ERD
    2022년 03월 30일 18시 21분 51초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    27차시에서는 데이터베이스에 대한 기본 개념과 MySQL에서의 테이블, ERD 생성 실습을 진행하였다. 이에 대한 주요 내용을 다음과 같이 정리하였다.


    1. 테이블 생성

    Column Name은 소문자 스네이크 표기법을 사용한다.

    Primary Key의 경우 [그림 1]과 같이 Column 플래그를 PK, NN, UN, AI를 선택한다. (UN은 양수만 사용한다.)

    [그림 1] Primary Key 컬럼 플래그 설정

     

    ※ Column 플래그(https://dev.mysql.com/doc/workbench/en/wb-table-editor-columns-tab.html)

    PK: PRIMARY KEY
    NN: NOT NULL
    UQ: UNIQUE INDEX
    BIN: BINARY
    UN: UNSIGNED
    ZF: ZEROFILL
    AI: AUTO_INCREMENT
    G: Generated Column

     

    Datatype 중  DATETIME은 날짜시분초를 넣는다. CURRENT_TIMESTAMP 설정은 레코드가 등록되는 시점에 자동으로 날짜시분초 정보를 넣어준다. created_datetime Column은 거의 모든 테이블에 다 들어간다고 보면 된다.

    [그림 2] DATETIME

     

    ※ [그림 2]와 같이 생성한 product_supplier 테이블에는 작성자 정보가 누락되어 있는데 실무에서는 작성자 Column(created_userid)를 넣는다.

     

    product_no는 PK가 아니지만 유일한 값이기 때문에 [그림 3]과 같이 UQ Column 플래그를 지정한다.

    [그림 3] 유일한 값을 위한 UQ 컬럼 플래그

     

    FK는 [그림 4-1]과 같이 Column 플래그 NN, UN을 체크한 후 [그림 4-2]와 같이 Foreign Keys 탭에서 FK를 추가하여 PK와 연결한다.

    [그림 4-1] FK 설정시 NN, UN을 체크한다.

     

    [그림 4-2] Foreign Keys 탭을 클릭하여 FK를 추가하여 PK와 연결한다.

     

    제품의 가격(price) Column에서 한국의 경우는 소수점이 없기 때문에 Datatype을 INT로 설정하면 되나, 외국의 경우에는 DECIMAL()로 설정해야 한다.

     

    Datatype 중 ENUM은 특정 값만 입력받는다. [그림 5]의 경우 'P'와 'F'만 입력받는다.

    [그림 5] ENUM은 특정 값만 입력 받는다.

     

    일반적으로 영업 담담자의 경우 별도의 테이블을 만드는 것이 아니라 employee 테이블에서 영업 담당자(salesperson) Column을 만들고 Datatype에서 ENUM으로 'Y'또는 'N' 값을 받도록 한다. [그림 6]의 경우 기본값을 'N'으로 설정했다.

    [그림 6] employee 테이블에 영업담당자인지 아닌지를 'Y'또는 'N'으로 표시

     

    ※ 실무에서는 employee 테이블에 부서(department) Column을 추가한다. 이때 부서, 직급 테이블 등도 필요할 것이다.

     실무에서 주문 데이터를 담는 테이블은 주문 관리의 경우 order_header, 주문에 들어온 제품 목록은 order_item(또는 order detail)으로 생성하여 관리한다.

     

     

    2. ERD 생성

    [그림 7-1]과 같이 Database > Reverse Engineer 클릭, Next 계속 클릭, [그림 7-2] 화면에서 dev 선택, Execute 클릭...

    [그림 7-1] Reverse Engineer

     

    [그림 7-2] 해당 스키마 선택

     

    [그림 7-3] 생성된 ERD

     


     

    728x90
    반응형
    댓글