Maison  >  Article  >  base de données  >  Voici quelques options de titre qui se concentrent sur le format des questions et réponses, en utilisant un format de question : **Option 1 (direct et clair) :** * **Héritage de table unique par rapport à l'héritage de tables multiples : ce que je

Voici quelques options de titre qui se concentrent sur le format des questions et réponses, en utilisant un format de question : **Option 1 (direct et clair) :** * **Héritage de table unique par rapport à l'héritage de tables multiples : ce que je

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 22:01:02465parcourir

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

Héritage de table unique Laravel Eloquent

Problème

Vous souhaitez implémenter l'héritage de table unique pour créer plusieurs types de modèles partageant des propriétés communes tout en ayant des propriétés uniques .

Solution : héritage de table unique

Envisagez d'utiliser l'héritage de table unique. Dans cette approche, vous disposez :

  • Un modèle Post de base lié à une seule table.
  • Des modèles d'articles et de questions dérivés étendant Post.
  • Une colonne de type dans la table Post pour distinguer les types de modèles.

Solution : héritage multi-tables

L'héritage d'une seule table peut conduire à des valeurs nulles. Envisagez plutôt l'héritage multi-table :

  • Tables séparées pour chaque type de modèle (messages, questions, articles).
  • Les colonnes de clé étrangère (postable_id, postable_type) dans la table des publications font référence à l'autre tables.
  • Relations polymorphes dans les modèles éloquents pour connecter les tables.

Configuration du modèle éloquent

Post

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

Question / Article

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

Utilisation :

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn