У моих более опытных коллег получается обойтись 3 - 4 запросами чтобы вывести все данные, при таких же условиях у меня в лучшем случае получается 9 - 10
Без подробностей разницу понять не получается)) но поверим на слово.
По проектированию бд - как минимум нормализация отношений
По SQL запросам - зависит в целом от бд, свои нюансы. Но в целом все похоже, тут надо уже конкретно понимать строение запроса зачем нужен тот или иной оператор, как работают индексы, составные индексы, джоины, зачем нужен HAVING и прочее.
В основе на мой взгляд - это понимание работы индексов, составных индексов, джоинов. Особенно чем отличается left,inner,right.