호랑사과
[생활코딩] 웹어플리케이션 만들기 10일차 본문
이 글은 오픈튜토리얼스의 생활코딩의 '웹어플리케이션 만들기'를 듣고 개인적으로 정리한 내용입니다.
굵은 글씨로 된 제목을 누르시면 해당 강좌로 이동할 수 있습니다.
관계형, 객체형, 계층형 DB가 있고 NoSQL 등 여러 종류의 DB가 있다. 그중 대표적으로 사용되는 MySQL, MSSQL, ORACLE은 관계형 DB이다.
위 표의 author를 보면 중복이 존재하는데 이를 제거하기 위해서 우선 id와 name으로 이루어진 user라는 별도의 table를 만든다. 그 후 SQL의 명령어에 따라 중복이 없는 table을 만든다. 독립으로 2개로 나누어진 table들을 SQL 명령문인 JOIN을 통해 관계를 맺는 것이 관계형 DB이다.
해당 강의 페이지의 코드를 복사+붙여넣기하면 위와 같이 topic 테이블과 user 테이블이 생성이 된다. 위와 같이 두 테이블로 나누면 author에 대한 중복을 없앨 수 있다.
topic테이블의 "author" 값과 user테이블의 "id" 값을 결합한 상태의 테이블을 보기위해 위와 같이 치면 오류가 생기는데 이것은 id의 값이 topic의 id인지 author의 id인지 모호하다는 의미이다.
그래서 모호성이 없도록 위와 같이 작성을 하면 오류없이 출력되는 것을 볼 수 있다. Index.php로 가서 article 부분의 $sql을 수정을 하고 $row['author']로 되어 있는 것을 $row['name']으로 바꾸면 웹페이지에 정상적으로 저자의 이름이 출력되는 것을 볼 수 있다.
테이블이 2개로 나누어져 있으므로 process.php도 바꿔야한다. exit를 입력하면 그 밑에 있는 코드들은 실행이 안되고 끝나버린다.
조회한 사용자가 테이블에 존재할 경우와 존재하지 않을 경우의 $result의 값이 어떻게 변하는지 알아보기위해 변수에 대해 상세한 정보를 출력해주는 var_dump 함수를 이용하여 알아본다.
기존에 존재하는 name인 'egoing'을 입력할 때
기존에 없는 name인 'hoya'를 입력했을 때
hoya까지 입력한 후의 테이블
위와 같이 기존 테이블에 이름이 있느냐 없느냐에 따라 num_rows 값이 달라지는 것을 확인할 수 있다. 기존 테이블에 이름이 존재하면 num_rows 값이 1이 되고 없으면 0이 된다.
'작업실 > 웹프로그래밍' 카테고리의 다른 글
[생활코딩] 웹어플리케이션 만들기 12일차 (0) | 2017.07.23 |
---|---|
[생활코딩] 웹어플리케이션 만들기 11일차 (0) | 2017.07.23 |
[생활코딩] 웹어플리케이션 만들기 9일차 (0) | 2017.07.23 |
[생활코딩] 웹어플리케이션 만들기 8일차 (0) | 2017.07.08 |
[생활코딩] 웹어플리케이션 만들기 7일차 (0) | 2017.07.08 |