Deleting "child" records on delete (reverse foreign key constraint?)
I would use a delete trigger to remove the records from table C when a delete occurs on table a or b.

There is a question from SO where the answer gives you a nice example: 

https://stackoverflow.com/questions/11818191/mysql-trigger-delete-from-table-after-delete

But to give you the rough idea from that answer:

CREATE TRIGGER table_c_delete AFTER DELETE on table_a
FOR EACH ROW
BEGIN
DELETE FROM table_c
    WHERE table_c.parent_id = old.id;
END