- [개발자의품격][부트캠프][1기][27차시] MySQL #1 | 테이블 생성, ERD2022년 03월 30일 18시 21분 51초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
27차시에서는 데이터베이스에 대한 기본 개념과 MySQL에서의 테이블, ERD 생성 실습을 진행하였다. 이에 대한 주요 내용을 다음과 같이 정리하였다.
1. 테이블 생성
Column Name은 소문자 스네이크 표기법을 사용한다.
Primary Key의 경우 [그림 1]과 같이 Column 플래그를 PK, NN, UN, AI를 선택한다. (UN은 양수만 사용한다.)
※ 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 ColumnDatatype 중 DATETIME은 날짜시분초를 넣는다. CURRENT_TIMESTAMP 설정은 레코드가 등록되는 시점에 자동으로 날짜시분초 정보를 넣어준다. created_datetime Column은 거의 모든 테이블에 다 들어간다고 보면 된다.
※ [그림 2]와 같이 생성한 product_supplier 테이블에는 작성자 정보가 누락되어 있는데 실무에서는 작성자 Column(created_userid)를 넣는다.
product_no는 PK가 아니지만 유일한 값이기 때문에 [그림 3]과 같이 UQ Column 플래그를 지정한다.
FK는 [그림 4-1]과 같이 Column 플래그 NN, UN을 체크한 후 [그림 4-2]와 같이 Foreign Keys 탭에서 FK를 추가하여 PK와 연결한다.
※ 제품의 가격(price) Column에서 한국의 경우는 소수점이 없기 때문에 Datatype을 INT로 설정하면 되나, 외국의 경우에는 DECIMAL()로 설정해야 한다.
Datatype 중 ENUM은 특정 값만 입력받는다. [그림 5]의 경우 'P'와 'F'만 입력받는다.
일반적으로 영업 담담자의 경우 별도의 테이블을 만드는 것이 아니라 employee 테이블에서 영업 담당자(salesperson) Column을 만들고 Datatype에서 ENUM으로 'Y'또는 'N' 값을 받도록 한다. [그림 6]의 경우 기본값을 'N'으로 설정했다.
※ 실무에서는 employee 테이블에 부서(department) Column을 추가한다. 이때 부서, 직급 테이블 등도 필요할 것이다.
※ 실무에서 주문 데이터를 담는 테이블은 주문 관리의 경우 order_header, 주문에 들어온 제품 목록은 order_item(또는 order detail)으로 생성하여 관리한다.
2. ERD 생성
[그림 7-1]과 같이 Database > Reverse Engineer 클릭, Next 계속 클릭, [그림 7-2] 화면에서 dev 선택, Execute 클릭...
728x90반응형'영광의 시대! > 2022 개발자의 품격 부트캠프 1기' 카테고리의 다른 글
다음글이 없습니다.이전글이 없습니다.댓글