집 >데이터 베이스 >MySQL 튜토리얼 >## Laravel의 Eloquent의 다중 테이블 상속: 더욱 깔끔한 접근 방식?
Laravel Eloquent의 다중 테이블 상속
단일 테이블 상속을 구현하는 것은 모델 확장을 위한 편리한 솔루션처럼 들리지만 다음과 같은 단점이 있습니다. 특정 열을 쿼리할 때 수많은 NULL 값과 복잡성으로 인해 데이터베이스 크기가 증가했습니다. 대신 다중 테이블 상속이 더 깔끔한 접근 방식을 제공합니다.
스키마 디자인
각 모델 유형에 대해 공유 열과 고유 열에 대해 별도의 테이블을 만듭니다. 예:
Eloquent Models
Post 모델을 상위 클래스로 정의합니다.
<code class="php">class Post extends Eloquent { // Shared column, relationships, etc. public function postable(){ return $this->morphTo(); } }</code>
게시 가능한 각 유형에 대해 질문과 같은 하위 모델을 만듭니다.
<code class="php">class Question extends Post { public function post(){ return $this->morphOne('Post', 'postable'); } }</code>
사용
새로 만들기 모델
공유 테이블(게시물)과 유형별 테이블(질문) 모두에서 레코드를 생성하는 작업입니다.
<code class="php">$question = new Question(); // Create a question record $question->question_column = 'test'; $question->save(); $post = new Post(); // Create a post record $post->shared_column = 'New Question Post'; $post->save(); // Link them together $question->post()->save($post);</code>
이 접근 방식은 보다 효율적인 데이터베이스 구조를 보장하고 Laravel의 모델 상속을 위한 확장 가능한 솔루션을 제공합니다.
위 내용은 ## Laravel의 Eloquent의 다중 테이블 상속: 더욱 깔끔한 접근 방식?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!