[php] PHP CodeIgniter 모델 관계 설정

CodeIgniter는 PHP 웹 응용 프로그램을 빠르고 쉽게 작성할 수 있도록 지원하는 경량 프레임워크입니다. 모델 관계 설정은 데이터베이스 테이블 간의 관계를 정의하고 상호 작용하는 데 사용됩니다.

모델 관계

모델 관계는 원대 다 (One-to-Many), 다대 원 (Many-to-One), 다대 다 (Many-to-Many) 관계를 포함할 수 있습니다. 이러한 관계를 설정하려면 CodeIgniter의 모델 관계 기능을 이해해야 합니다.

class Author_model extends CI_Model {
    public function books() {
        return $this->has_many('Book_model');
    }
}

class Book_model extends CI_Model {
    public function author() {
        return $this->belongs_to('Author_model');
    }
}

위 코드에서 Author_model 클래스는 여러 개의 책을 가질 수 있으므로 has_many를 사용하여 관계를 정의합니다. 반면에 Book_model 클래스는 하나의 저자에 속할 수 있으므로 belongs_to를 사용하여 관계를 정의합니다.

관계 설정하기

모델 간 관계 설정은 데이터베이스 스키마를 기반으로 하며, 관련된 테이블 간의 외래 키(foreign key)를 사용하여 이루어집니다.

$table->foreign('author_id')->references('id')->on('authors');

위 코드는 데이터베이스의 books 테이블에서 author_id 열을 외래 키로 설정하여 authors 테이블의 id 열과 관계를 맺습니다.

모델 관계 활용

모델 관계를 설정하면 해당 모델 및 관련된 모델 간에 쉽게 쿼리할 수 있습니다. 예를 들어, 특정 작가의 모든 책을 가져오거나 특정 책의 작가를 알아내는 등의 작업이 용이해집니다.

CodeIgniter는 모델 관계 설정을 통해 간단한 방법으로 데이터베이스 상의 복잡한 관계를 다룰 수 있도록 지원합니다. 모델 간의 관계 설정은 코드를 더욱 유연하게 만들어주며, 데이터베이스 연산을 간단하게 처리할 수 있게 해줍니다.

더 자세한 내용은 CodeIgniter 공식 문서를 참조하세요.