우리는 이 학습에서 MySQL 을 공부할 겸 나중에 '요기보드'에서 사용하는 테이블을 만들어 볼거야.
게시판 글을 저장할 yg_bbs 과 회원정보를 저장할 yg_user 라는 이름의 두개의 테이블이야.
처음 adminer 를 이용해서 여러분의 DB에 접속해 보면 아래 그림과 같이 "테이블이 없습니다" 라는 메시지만 보일거야.
이제 사용할 테이블을 만들어야 겠지?
▶ yg_bbs 테이블 만들기
yg_bbs 는 홈페이지 회원들이 쓴 글을 저장하는 테이블이야.
테이블에는 각 게시글에 대한 고유번호와 제목, 내용, 회원별명, 댓글, 조회수, 그림파일을 첨부할 경우 그림파일명을 저장하는 필드(열)들이 들어 가야 겠지? 만들어 보자구.
그런데 테이블 이름이 왜 하필이면 yg_bbs 이지? 그냥 bbs 라고 하면 안될까?
물론 상관없어.
yg_bbs 앞의 yg_ 를 붙인 이유는 이 테이블은 '요기보드'에서 사용할 것이라는 뜻으로 붙여 둔거야.
이렇게 한 이유는 앞으로 여러분의 홈페이지가 점점 커지면서 용도에 따라 테이블도 하나씩 늘어나서 수십개가 되었을때 그중에서 요기보드용 게시판 테이블과 헷갈리지 말도록 붙인 이름이야.
또 '그누보드' 같은 유명한 보드와 함께 사용할 때 테이블 이름이 서로 중첩되지 않기 위해서 약간 독특한 프리픽스(Prefix)를 붙여서 이름을 정했어. (많은 CMS 용 게시판 프로그램이 이런 방식으로 사용해)
1. 우측 하단의 [테이블만들기]를 클릭해서 아래 화면과 똑같이 만들어봐.
위 그림과 똑같이 입력하고 [저장]을 누르면 아래 화면과 같이 yg_bbs 라는 테이블이 만들어진 것을 확인 할 수 있어.
bno에는
[AI] 항목에 체크가 되어 있어.
AI는 Auto-Increment(자동증가)의 약자로 게시글마다 부여되는 고유번호 bno를 ‘자동 번호증가’를 하라는 뜻이야.
즉, 새 게시글을 추가할 때 bno에 값을 넣지 않아도 자동으로 마지막 번호+1 값으로 들어가게 되는 거야.
Null은 이 항목에 값이 들어가지 않아도 된다는 의미야.
bno는 반드시 들어가야 하기 때문에 v 체크가 없지만 나머지는 필수항목이 아니라는 뜻이야.
그리고 ‘색인’ 항목에는 PRIMARY 로 bno 가 자동선택 되어 있는데, 이건 이 항목이 고유값을 가지는 가장 중요한 키로 사용된다는 뜻이야.
또 content는 칼럼 종류를 TEXT로 지정했는데 TEXT는 65,000 글자까지 입력할 수 있어.
우리 '요기보드' 는 아주 단순한 게시판이니 이만해도 충분할 거야.
나중에 더 긴 글이 들어 가야할 것 같으면 mediumtext (1600만자) 나 longtext (4기가) 으로 변경해 주면 돼.
▶ yg_user 테이블 만들기
yg_user 는 요기보드의 회원(user)의 정보를 저장하는 테이블이야.
여기에는 회원고유번호(UserNo)와 아이디(UserID), 비밀번호(Pass), 그리고 이름, 이메일, 가입일, 회원등급.. 같은 정보들이 저장되겠지?
1. 화면 좌측 상단의 [테이블 만들기] 를 클릭한뒤, 아래 그림과 똑같이 입력해봐..
위 그림과 똑같이 입력하고 [저장]을 누르면 아래 화면과 같이 yg_user 라는 회원테이블이 만들어진 것을 확인 할 수 있어.
이렇게 yg_user 테이블이 만들어 졌어.
그런데 이 회원테이블은 게시글 테이블과 달리 할게 하나 더 있어.
화면 아래쪽을 보면 회원 고유번호에 대해 Primary 로 uno 는 유일한 값을 가지는 색인설정이 자동으로 되었는데, 사용자 테이블에는 유일한 값을 가져야 하는 필드가 하나 더 있어.
바로 uid 로 회원아이디(User ID) 는 전체 회원에서 중복되면 안되잖아.
그러니 이 uid 도 유일한 값이라는 설정을 해 주어야 해.
2. 화면 하단의 [색인] 란 아래의 [색인 변경] 을 클릭
아래 그림과 같이 둘 째줄에 [UNIQUE] 로 선택하고, 필드는 uid 를 선택해서 [저장]
UNIQUE 는 테이블 전체에서 같은게 있으면 안되고 유니크한 값을 가져야 한다는 뜻이야.
물론 Primary 도 마찬가지야.
그런데 Primary 는 테이블에서 1개 밖에 지정할 수 없으니까 또 다른 고유값이 필요하면 Unique 로 잡아 주면 돼.
[저장]을 누르면 이제 이 회원정보 테이블 화면 하단의 [색인] 란에 아래와 같이 2개의 색인이 잡힌 것을 볼 수 있을거야.
위 구조를 보면 uno 는 회원 마다 자동부여 되는 고유번호로 Primary 키(색인)으로 잡혀 있고,
uid 는 회원아이디로 Unique 로 색인을 해둬서 중복되는 회원 아이디를 저장하려고 하면 에러를 발생하면서 저장이 안돼.
level 은 회원의 등급으로 10 은 관리자, 2 는 신규회원, 1 은 탈퇴회원.. 이런식으로 등급별로 권한을 주고자 할때 사용하려고 해.
pass 는 비밀번호인데 공간을 무려 80 자를 두었어.
이것은 고객이 입력한 비밀번호를 저장할 때 암호화해서 저장하려면 내용이 길어지기 때문이야.
암호화에 대해서는 나중에 보안 관련할 때 설명하도록 할께.
자 이제 테이블을 만드는 방법을 배워 보았어.
만들고 나니 오타가 났으면 [테이블 변경]으로 들어가서 내용을 변경하면 돼. 또 테이블을 삭제하고 새로 만들어도 되고,
그렇지만 이미 테이블 안에 데이터가 많이 들어가 있는데 삭제하면 내용도 모두 영영 없어지는 건 알지?.
삭제는 항상 언제나 조심 또 조심..
(그런데 초보자 시절에 DB 나 테이블을 삭제하고 혼쭐이 나 봐야 중요성을 배우기도 한다는..)
이제 이 테이블에 자료를 넣는 방법을 공부해 보자구.