with this relations, defined with the schema, you can do automatic joins, and use some nice API-functions like getCollectionGraph, addOne, getOne....
If you make a join to Resources with migxLoopCollection you can do:
&joins=`[{"alias":"Resource"}]`
otherwise you would need:
&joins=`[{"alias":"Resource","classname":"modResource","on":"Resource.id=resource_id"}]`
Another advantage is, when you look into your schema, you will see, how your tables are related to each other.
composite-relations automatically takes care, when you remove a record of a 'master-table', to remove related records of 'child-tables'