Let's say you need to funnel random, related data given to you into more succinct categories.
Example - You're given the following data. NOTE - There could be any number of other related, columnar data:
Customer Product Category
========== ========= =================================
Customer A Product A Cat 1
CustomerA Product B Category 1
Cust-A Product C Totally Lame & Unrelated Grouping
Task - Consolidate and normalize the above into clean, pre-defined groupings:
CustomerA
Category1
ProductA
ProductB
ProductC
Please don't worry about how the finished data will be persisted. But rather focus on how you'll persist and manage the rules for grouping.
Only one assumption: You can't use a database to persist your grouping rules. So when we say "normalize", we're not speaking in terms of relational database normalization rules. But rather we're wanting to remove inconsistencies from data inputs (as seen above) to bring the random data into a consistent state.
So what are the available options? Remain technology agnostic:
XML?
Config files?
Settings file (compiled or not)?
Ini File?
Code?
etc.
List pros & cons for each answer. And though this is indeed an excersize, it's a real-world problem. So assume your client/employer has tasked you with this.