Je ne pense pas que vous ayez besoin d'une table de jointure pour les factures, les expéditeurs et les destinataires. Vous pouvez stocker ces clés étrangères dans votre table de factures. Vos relations seraient alors :
<?php
class Invoice extends AppModel {
public $belongsTo = array(
'Sender' => array(
'className' => 'Account',
'foreignKey' => 'sender_id'
),
'Receiver' => array(
'className' => 'Account',
'foreignKey' => 'receiver_id'
)
);
}
Si vous avez ensuite besoin de distinguer les factures qui ont été envoyées ou non, vous pouvez également ajouter une colonne appelée status_id
ou similaire, et stocker une autre clé étrangère dans un nouveau statuses
table, avec une colonne d'ID et une colonne de nom, et les exemples de données suivants :
id name
== ====
1 Draft
2 Sent
Et tout autre statut dont vous pourriez avoir besoin.