Contacts have Specialities (skills) to sell so I have a Master-Detail from Contact to Speciality. We sell Product (1/2 day, full day) for those Contacts so the Product has a lookup to the Contact. Speciality <= Contact => Product.
Now I want to search for Products based on Specialities. I can get from Product to Contact but I can't get from Contact to Speciality because it is a one-to-many relationship. What I'd like to do is denormalise the Contact => Speciality relationship and put some of the information into a single ';' separated string. A bit like a multi-picklist. (BTW, multi-picklist won't work for the Speciality because there is other information in the Speciality record not required for the search.) If I could denormalise it I could just do a text search on the values.
Any ideas welcome.