Aipoのメッセージ機能などでは、外から見るとひとつの機能でもデータベースのテーブルリストをみると、「メッセージ自体」「既読機能の管理」「メッセージに添付されたファイル」のテーブルなど、いくつかのテーブルが連携していることがあります。
この場合、メッセージの削除を行いたいときにSQLを3つ作成し、送信する必要があるように思えますが、テーブルの定義のときに他のテーブルとヒモ付をおこなうことで、削除などの際に簡単になります。
具体的には、「既読」を管理するテーブルこのようになっています。
CONSTRAINT eip_t_message_read_message_id_fkey FOREIGN KEY (message_id) REFERENCES eip_t_message (message_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
eip_t_messageのmessage_idが削除された場合には、eip_t_message_read_message_idの列が削除されるようになっています。