Performance Gains with Denormalization?

I'm new to Core Data, and busy trying to design my data model. I have tried to search for the answer in the forums as it's a rather classic issue I'm asking about, but couldn't find any relevent answers.


I'm planning to tag content and store this content and the tags in my data model. Whenever I present the content in the app, I'll also present the tags. I thought it might be a good idea to denormalize this relationship by adding a 'tags' field to the Content entity and store the space delimited set of tags as a string. Then I could possibly do without a Tag entity. Part of my app allows users to define custom queries so a user could possibly want to see all content tagged with 4 or 5 (or more) tags. So they'd be building up a compond predicate with 4 or 5 AND clauses that are all evaluating the contents of the 'tag' string.


Is this going to perform worse than simply creating a many-to-many join between a Content entity and Tag entity and querying across these tables? These queries are going to be used as shortcuts in the app, so it's really important that they are performant. I realise that I could possibly implement both approaches and evaluate the performance once I've got some data to play with. Does anyone have any real-world experience with this issue they'd like to share or advice they can share with me?