Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Múltiplas relações com o mesmo modelo CakePHP


Eu não acho que você precise de uma tabela de junção para faturas e remetentes e destinatários. Você pode armazenar essas chaves estrangeiras em sua tabela de faturas. Seus relacionamentos seriam então:
<?php
class Invoice extends AppModel {

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

Se você precisar distinguir as faturas que foram enviadas ou não, você também pode adicionar uma coluna chamada status_id ou similar, e armazene outra chave estrangeira em um novo statuses table, com uma coluna de ID e uma coluna de nome e os seguintes dados de amostra:
id name
== ====
1  Draft
2  Sent

E quaisquer outros status que você possa precisar.