sql >> データベース >  >> RDS >> Mysql

1対多の関係を持つ複数のテーブル(Laravel)

    polymorphicを使用する必要があります このための関係。複数のモデルが単一のテーブルを利用できるようにします。

    こちらのドキュメントをご覧ください

    特定のケースでは、各テーブルが noteable_idを参照します。 列とnoteable_type

    noteable_id (A / B / C)のIDが含まれます モデル。

    noteable_type モデルの文字列名が含まれます(A / B / C)

    (A / B / C) モデルは新しい属性を取得します:

    /**
     * (A/B/C) Model(s)
     */
    public function notes()
    {
        return $this->morphMany('App\Notes', 'noteable');
    }
    

    そしてnote モデルは、ポリモーフィックIDとタイプを識別するために使用される属性名に対してポリモーフィックプロパティを開始します :

    /**
     * Note Model
     */
    public function noteable()
    {
        return $this->morphTo();
    }
    

    これで、-> noteを呼び出すだけで済みます。 (A / B / C) モデルであり、テーブルごとに別のピボットテーブルを必要とせずに、すべて1つのテーブルを共有します。




    1. PHP / MySQLで一意のコードを生成しますか?

    2. SUM(users_count)が1000に達するまで選択するSQLクエリ

    3. Postgres-2つの列を1つのアイテムに集約します

    4. UPDATEとSELECTを同時に行う方法