Tôi không nghĩ rằng bạn cần một bảng kết hợp cho các hóa đơn, người gửi và người nhận. Bạn có thể lưu các khóa ngoại này trong bảng hóa đơn của mình. Các mối quan hệ của bạn khi đó sẽ là:
<?php
class Invoice extends AppModel {
public $belongsTo = array(
'Sender' => array(
'className' => 'Account',
'foreignKey' => 'sender_id'
),
'Receiver' => array(
'className' => 'Account',
'foreignKey' => 'receiver_id'
)
);
}
Sau đó, nếu bạn cần phân biệt hóa đơn đã được gửi hay chưa, bạn cũng có thể thêm một cột có tên là status_id
hoặc tương tự, và lưu trữ một khóa ngoại khác vào một statuses
mới bảng, với cột ID và cột tên, và dữ liệu mẫu sau:
id name
== ====
1 Draft
2 Sent
Và bất kỳ trạng thái nào khác mà bạn có thể cần.