https://web.archive.org/web/20161129115737/http://www.xeschool.com/xe/xenote_module_book_table_language

BOOK Module Table & Language

1. DB 테이블의 설치 (Database Table)

모듈의 스키마(schemas) 폴더에 XML 언어 형식으로 만들어진 DB 스키마 파일이 있다면 XE코어는 설치시 사용했던 DB 머릿말을 자동으로 붙여서 XML 파일의 이름과 같은 테이블을 만들어 준다. 예를 들어 books.xml 파일이 있다면 xe_books 라는 테이블을 만들어 준다. xe_ 라는 DB 머릿말은 XE코어가 알아서 처리해 주기 때문에 신경쓸 필요는 없다. 처음 설치시 bbs를 머릿말로 사용했다면 bbs_books 라는 테이블이 생성될 것이다. XE코어는 스키마 파일을 보게 되면 관리자>모듈>모듈 목록 화면에서 모듈 설치 버튼을 보여준다. 그리고 스키마 파일의 갯수와 미설치된 테이블의 갯수를 빨간색 텍스트로 알려준다. 만약 모듈이 기존에 사용하는 테이블에서 추가할 컬럼(column)이 있다거나 변경된 내용이 있다면 업데이트하라고 출력할 것이다.(물론 업데이트 메소드는 기본 클래스에서 정의해 두어야 한다.)

즉, 스키마(schemas) 폴더 안에 들어 있는 스키마 파일의 갯수만큼 만들어 준다. 생성될 테이블의 이름은 파일의 이름과 같다.

좌측 테이블은 BOOK 모듈이 책의 정보 값을 저장하고 조회할 테이블과 컬럼의 이름이고 계획표이다. 예제를 위해 최소한으로 계획하였다. 여기에 BOOK 모듈이 목적한 기능으로 동작하기 위해서는 책의 고유한 원자값도 필요하고 모듈 관리자에서 생성할 모듈($mid)의 자손임을 알 수 있도록 모듈 식별 번호($module_srl)도 함께 저장해야 한다. 따라서 오른쪽과 같이 책의 고유 식별 번호로 사용할 $book_srl 컬럼과 BOOK 모듈(mid)의 식별 번호를 저장할 $module_srl 컬럼을 추가한다. $book_srl은 자동증가(auto_increment)로 설정해 두면 DB row가 증가할 때마다 값이 1씩 증가할 것이다.

생성된 BOOK 모듈(mid)이 자신의 책만 모두 가져와 목록으로 출력하고 싶다면 $module_srl 컬럼을 조건(WHERE)으로 확인하면 된다. 책의 정보를 수정하거나 삭제하기를 원한다면 책의 고유 식별 번호 $book_srl 컬럼을 조건으로 확인하면 된다.

다음과 같이 테이블 생성을 위한 XML 스키마 파일을 작성하여 업로드 한다.

book/schemas/books.xml