본문 바로가기

Yii Framework/블로그 만들기

04. 전체 설계

이 곳은 제가 개인적으로 YII framework의 블로그 만들기를 번역해 놓은 곳입니다.

제가 영어 전공자도.. 그렇다고 영어랑 친하지도 않습니다. 

그래서 보시면 뭔가 글도 엉성하고 말이 안맞는게 많습니다.

잘못 오역된 부분이라던지 그런 부분들 친절하게 알려주시면 바로 수정하겠습니다.

이 페지의 원글 http://www.yiiframework.com/doc/blog/1.1/en/start.design



전체 설계

요구 분석을 바탕으로, 블로그 어플리케이션에서 데이터를 저장하기 위해서 다음의 데이터베이스 테이블을 사용합니다.

  • tbl_user 는 사용자 이름, 암호 등 사용자 정보를 저장합니다.
  • tbl_post 기사 정보를 저장합니다. 주로 다음 컬럼으로 구성되어 있습니다 :
    • title : 필수, 기사 제목
    • content : 필수, Markdown 형식 으로 작성된 문서의 본문
    • status : 필수, 게시물의 상태  (공개 여부) . 다음중 하나의 값을 사용함
      • 1, 게시물이 초안에 있으며 공개되지 않은 게시물 입니다.
      • 2, 공개된 게시물입니다.
      • 3, 게시기간이 지난 게시물이며, 목록에는 나타나지 않습니다(그렇지만, 개별적으로 계속 엑세스 할수 있습니다)
    • tags : 옵션, 단어를 쉼표구분 하여 카테고리화 하는 것입니다.

  •  tbl_comment 게시물의 댓글 정보를 저장합니다. 각 코멘트는 게시말과 관련된 주로 다음과 같은 항목으로 구성되어
    있습니다. :
    • author : 필수, 댓글 작성자 이름
    • email : 필수, 댓글 작성자의 이메일 주소
    • url : 옵션, 댓글 작성자의 웹 사이트의 URL
    • content : 필수, 일반 텍스트로 된 댓글의 내용
    • status : 필수, 코멘트 상태 (공개 여부). 코멘트가 승인 인경우 (value 2) 또는 승인이 아닌경우 (value 1) 입니다.

  • tbl_tag 는 태그 클라우드 기능을 구현하기 위해 필요한 문서의 태그 빈도 정보를 저장합니다. 이 테이블은 주로 다음 컬럼으로 구성되어 있습니다 :
    • name : 필수, 고유한 대크이름
    • frequency : 필수, 태그가 기사에 나오는 횟수

  • tbl_lookup 는 일반 조회 정보를 저장합니다. 이것은 본질적으로 정수와 텍스트의 매핑입니다. 전자는 코드의 데이터 표현이며, 후자는 해당 최종 사용자를위한 표현입니다. 예를 들어, 정수 값 1을 기사가 초안임을 나타내는 것으로 사용하지만, 사용자에게 표시 할 텍스트는 기본 입니다. 이 테이블은 주로 다음 컬럼으로 구성되어 있습니다 :
    • name : 데이터 항목의 텍스트 표현 (최종 사용자를위한 표시)
    • code : 데이터 항목의 정수 표현
    • type : 데이터 항목 형식
    • position : 동일한 유형의 데이터 항목에서의 상대적인 정렬

다음 entity-relation (ER) 다이어그램 은 테이블 구조와 위의 테이블에 대한 관계를 나타냅니다.

Entity-Relation Diagram of the Blog Database

Entity-Relation Diagram of the Blog Database

위의 ER 다이어그램에 해당하는 전체 SQL 문은 블로그 데모에서 찾을 수 있습니다.

정보: 다른 DBMS는  대소문자에 민감하여 종종 문제가 발생하기 때문에, 테이블 이름과 컬럼 이름은 모두 소문자로 명명합니다.

동시에, 모든 테이블에 tbl_ 라는 접두사를 붙이고 있습니다. 여기에는 두 가지 목적이 있습니다. 첫째, 동일한 데이터베이스에서 다른 테이블과 공존해야 할 때 접두사 테이블에 네임 스페이스를 도입하는 것이 해결책입니다. 이것은 공유 호스팅 환경에서 여러 응용 프로그램을 단일 데이터베이스를 사용하는 경우에 자주 볼 수 있습니다. 둘째, 접두사를 이용하면 DBMS의 예약어 테이블 이름을 사용할 가능성이 낮기 때문입니다.

블로그 애플리케이션 개발을 다음 이정표로 나눕니다.

  • Milestone 1 : 블로그 시스템의 프로토 타입을 만듭니다. 필요한 대부분의 기능을 포함합니다.
  • Milestone 2 : 기사의 평가 기능을 완성합니다. 기사 작성, 목록, 문서보기, 업데이트, 삭제가 포함됩니다.
  • Milestone 3 : 댓글 관리 기능을 완성합니다. 코멘트 작성, 목록 표시, 승인, 업데이트, 삭제가 포함됩니다.
  • Milestone 4 : 포틀릿을 구현합니다. 사용자 메뉴, 로그인, 태그 클라우드, 최근의 코멘트를 포함합니다.
  • Milestone 5 : 최종 조정 및 배포합니다.