호랑사과

[생활코딩] 웹어플리케이션 만들기 10일차 본문

작업실/웹프로그래밍

[생활코딩] 웹어플리케이션 만들기 10일차

호랑사과 2017. 7. 23. 10:03

이 글은 오픈튜토리얼스의 생활코딩의 '웹어플리케이션 만들기'를 듣고 개인적으로 정리한 내용입니다. 

굵은 글씨로 된 제목을 누르시면 해당 강좌로 이동할 수 있습니다.


관계형 데이터베이스 이론

 

  관계형, 객체형, 계층형 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이 된다.