Knee-jerk reaction (coming from having thought about related issues for years and years). At the deep level, I find it best to keep track of functional/cardinality dependencies: a given employee has a name, age, salary; a team has multiple employees on it and an employee can be on multiple teams. That way you can pay less attention to the exact organization of tables. Instead focus on a richer grammar for views. I'm especially fond of grouping, which if you think about it, is a lot like currying a function.
In my work, I often have a compound key โgiven a time, place, and person, you have a unique event of some sort โ and then it makes sense to talk about events, but you also want to pretty freely switch between places or people and still retain the context.