Suppose I have a situation where I'm designing a website for a shoe reseller. They have different brands and kinds of shoes and of course, they want a really good search function.
So there are different properties that shoes can have. They can have exclusive properties, such as size, width, gender, and children's/adults'. Or they can have non-exclusive properties such as color (there could be two or more colors on a shoe). Some categories might conflict with certain others, such as 'dress' and 'casual' (a shoe cannot be both a dress shoe and a sneaker (ignoring "comfort" dress shoes for this example)), whereas they don't conflict with yet others, such as 'dress' and 'boot' (a shoe can be a dress boot). The exclusive properties are easy to model, but how about potentially conflicting properties? Would this be a problem for set theory?
What would this kind of applied computer science be called, in general? Data modelling, or something more specific? I want to get into the more abstract philosophical principles, such as exclusive and non-exclusive properties, and see how those principles are implemented in code, data structures, and database schemas.
A good example of what I'm talking about would be the modified preorder tree traversal algorithm. It's a great way to make a nested hierarchical categorization system. So you have a real-life organizational problem: categories, and then you have a data structure that models that problem.
Where can I learn more about this type of stuff?