Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mehrere Beziehungen zum gleichen Modell CakePHP

Ich glaube nicht, dass Sie eine Join-Tabelle für Rechnungen sowie Absender und Empfänger benötigen. Sie können diese Fremdschlüssel in Ihrer Rechnungstabelle speichern. Ihre Beziehungen wären dann:

<?php
class Invoice extends AppModel {

    public $belongsTo = array(
        'Sender' => array(
            'className' => 'Account',
            'foreignKey' => 'sender_id'
        ),
        'Receiver' => array(
            'className' => 'Account',
            'foreignKey' => 'receiver_id'
        )
    );
}

Wenn Sie dann zwischen gesendeten und nicht gesendeten Rechnungen unterscheiden müssen, können Sie auch eine Spalte namens status_id hinzufügen oder ähnliches, und speichern Sie einen anderen Fremdschlüssel zu einem neuen statuses Tabelle mit einer ID-Spalte und einer Namensspalte und den folgenden Beispieldaten:

id name
== ====
1  Draft
2  Sent

Und alle anderen Status, die Sie benötigen.