Heim > Datenbank > MySQL-Tutorial > Hauptteil

Hier sind einige Titeloptionen, die sich auf das Frage- und Antwortformat konzentrieren und ein Frageformat verwenden: **Option 1 (direkt und klar):** * **Einzeltabellenvererbung vs. Mehrtabellenvererbung: Welche i

Patricia Arquette
Freigeben: 2024-10-24 22:01:02
Original
464 Leute haben es durchsucht

Here are a few title options that focus on the question and answer format, using a question format:

**Option 1 (Direct and Clear):**

* **Single Table Inheritance vs. Multi Table Inheritance: Which is Right for Your Laravel Model?**

**Option 2 (More Spe

Laravel Eloquent Single Table Inheritance

Problem

Sie möchten die Einzeltabellenvererbung implementieren, um mehrere Modelltypen zu erstellen, die gemeinsame Eigenschaften haben, aber einzigartige Eigenschaften haben .

Lösung: Einzeltabellenvererbung

Erwägen Sie die Verwendung der Einzeltabellenvererbung. Bei diesem Ansatz haben Sie:

  • Ein Basis-Post-Modell, das an eine einzelne Tabelle gebunden ist.
  • Abgeleitete Artikel- und Fragemodelle, die den Beitrag erweitern.
  • Eine Typspalte in die Post-Tabelle zur Unterscheidung zwischen Modelltypen.

Lösung: Vererbung mehrerer Tabellen

Die Vererbung einzelner Tabellen kann zu Nullwerten führen. Erwägen Sie stattdessen die Vererbung mehrerer Tabellen:

  • Separate Tabellen für jeden Modelltyp (Beiträge, Fragen, Artikel).
  • Fremdschlüsselspalten (postable_id, postable_type) in der Beitragstabelle verweisen aufeinander Tabellen.
  • Polymorphe Beziehungen in Eloquent-Modellen zum Verbinden der Tabellen.

Eloquent-Modell-Setup

Beitrag

<code class="php">class Post extends Eloquent {
    public function postable() {
        return $this->morphTo();
    }
}</code>
Nach dem Login kopieren

Frage / Artikel

<code class="php">class Question extends Post {
    public function post() {
        return $this->morphOne('Post', 'postable');
    }
}</code>
Nach dem Login kopieren

Verwendung:

<code class="php">$posts = Post::all();
$questions = Question::all();

$post = Post::find(1);
$question_column2 = $post->postable->question_column2;
$shared_column = $question->post->shared_column;</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die sich auf das Frage- und Antwortformat konzentrieren und ein Frageformat verwenden: **Option 1 (direkt und klar):** * **Einzeltabellenvererbung vs. Mehrtabellenvererbung: Welche i. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!