How to make a relation database match a dynamic composition of data?
I'd go for the normalized design, mainly for readability and maintainability reasons.

Looks like you have n:m relationships all the time, then i'd use

Resource(key,p1,p2,...,pn)
Consumer(key,p1,p2,...,pm)
Consumer_Resource(resourcekey,consumerkey,...)
Consumer_Consumer(consumerkey1,consumerkey2,...)


This is a tried and tested way to go about such a scenario, and will be understood by lots of database folks.