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.