[웹에이전시 개발] 메뉴 테이블 만들기

프리터코더·2023년 7월 20일

0

웹에이전시 전문 프리랜서 개발자 프리터코더입니다.

이번 챕터에서는 웹사이트 개발 과정 중 메뉴 테이블 만들기를 작업합니다.

<메뉴 테이블 만들기> 글은 웹에이전시의 의뢰를 받아서 프리터코더가 웹사이트를 개발하는 과정을 가상으로 보여주는 웹에이전시의 개발자들은 어떻게 일하나 시리즈 중 하나입니다.


1

먼저 데이터베이스를 만들겠습니다. 엑셀 파일을 하나 만든다고 생각하시면 됩니다.

 create database miss420 character set utf8mb4 collate utf8mb4_general_ci;

2

메뉴 테이블은 카테고리에 비해 상대적으로 복잡합니다. 관리해야 할 항목이 몇 개 있어요.

먼저 필요한 항목들을 기획서를 바탕으로 정리해 봅니다.

열 이름열 영어 이름타입제약필수여부비고
이름name문자최대 20글자O-
설명description문자최대 200글자O-
대표이미지image_url문자최대 512 글자O첨부한 이미지 경로
카테고리category_id문자4글자O무조건 4글자 고정
베스트 메뉴best_menu_yn문자1글자OY 혹은 N, 기본은 N

기획자 팁
개발자가 기획서 화면을 보고 짐작하게 하는 대신, 위와 같은 표를 그리면 일 잘하는 기획자라는 칭찬을 듣게 됩니다.

기획자 팁
이미지같은 경우 데이터베이스에 바로 넣는 것이 아니라 서버에 저장하고 그 경로만 따로 가지고 있습니다.

3

정리된 테이블 정보를 가지고 테이블을 생성합니다. 엑셀 탭에 헤더를 설정한다고 생각하시면 됩니다.

CREATE TABLE IF NOT EXISTS `menu_item` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `description` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `image_url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `category_id` char(4) DEFAULT NULL,
  `best_menu_yn` char(1) DEFAULT 'N',
  `insert_dt` datetime NOT NULL DEFAULT current_timestamp(),
  `update_dt` datetime DEFAULT NULL ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

4

쿼리를 실행하면 이런 결과가 보여집니다.
055

5

스프레드 시트 형식으로 보면 이런 식입니다.
056

6

쿼리를 읽을 줄 아시는 분이라면 테이블 이름이 menu 가 아니라 menu_item 임을 눈치채셨을텐데요. 데이터베이스 테이블 이름은 짓기 나름이지만, 대부분의 사람들이 비슷하게 쓰는 테이블 이름들이 있습니다.
예를 들어 상품은 product 혹은 goods , 네비게이션 메뉴는 menu 혹은 gnb 등입니다.
테이블 이름을 menu 로 짓게 되면 네비게이션 메뉴 테이블인지 아니면 상품 메뉴인지 알 수가 없기 때문에 menu_item 으로 이름붙여서 구분짓습니다.

기획자 팁
gnb 도 일반적으로 메뉴라고 부르고, 상품의 경우도 이름이 "메뉴" 입니다. 서로 다른 항목인데 같은 이름으로 불리는겁니다.
이런 경우 gnb 를 "메뉴" 대신 "gnb" 라고 명명한다던가, 혹은 gnb 를 "메뉴" 로 부를 꺼면 상품을 "메뉴" 라고 부르는 식으로 두개의 개념을 분리해야 합니다.
기획자 분의 역할이 중요합니다.


개발 요청은 프리터 코더 소개를 읽어보시고, 이메일 로 부탁드립니다.

profile
일용직 개발자. freetercoder@gmail.com

0개의 댓글