No creo que necesite una tabla de unión para facturas, remitentes y destinatarios. Puede almacenar estas claves externas en su tabla de facturas. Tus relaciones serían entonces:
<?php
class Invoice extends AppModel {
public $belongsTo = array(
'Sender' => array(
'className' => 'Account',
'foreignKey' => 'sender_id'
),
'Receiver' => array(
'className' => 'Account',
'foreignKey' => 'receiver_id'
)
);
}
Si luego necesita distinguir las facturas que se han enviado o no, también puede agregar una columna llamada status_id
o similar, y almacenar otra clave externa en un nuevo statuses
tabla, con una columna de ID y una columna de nombre, y los siguientes datos de muestra:
id name
== ====
1 Draft
2 Sent
Y cualquier otro estado que pueda necesitar.