This set entered on 5-12-2014
5.2.14.2
Your database tracks payments from customers. A CUSTOMER can send a check to cover TWO INVOICES, or to cover JUST PART OF AN INVOICE So an INVOICE can have MULTIPLE PAYMENTS, and a PAYMENT CAN BE FOR MULTIPLE INVOICES: MANY TO MANY.
You must CREATE A JOIN TABLE.
A JOIN TABLE does not usually REPRESENT A REAL ENTITY. Instead, EACH RECORD REPRESENTS A RELATIONSHIP BETWEEN TWO RECORDS IN THE RELATED TABLES.
In the INVOICE/PAYMENT example, the JOIN TABLE holds FOREIGN KEYS for INVOICE NUMBER and PAYMENT ID.
ADD a new RECORD IN THE JOIN TABLE, with the CORRECT INVOICE NUMBER and PAYMENT ID. Remember that the JOIN TABLE holds only TWO FIELDS in this example: FOREIGN KEY for INVOICE ID, and a FOREIGN KEY for PAYMENT ID.
The PAYMENT and INVOICE are properly connected IN BOTH DIRECTIONS. Since you can add AS MANY RECORDS as you want to the join TABLE, you can flexibly RELATE multiple INVOICES and PAYMENTS.