but why would you need id's when you can do the relations between types like this:
ID Key will basically serve the same purpose as they do in Relational Databases. If you use an ID, you will need to loop every category to find the one maching your item, like this you can just access it directly. Or am I missing something?
You don't loop through each category using an Array of Types.