«Все связанные таблицы» не всегда понятны, поэтому это не очевидная ситуация. Могут быть таблицы, которые имеют общий столбец, но никогда не видят друг друга.
Однако это удобно для предотвращения ошибок, которые проскальзывают мимо вашей основной защиты и позволяют вводить данные, которые трудно отследить.
Они не помогут сделать запросы более эффективными, если у вас есть правильные индексы, и хорошее приложение отфильтрует входные данные настолько, что они никогда не понадобятся. Но ошибки случаются, и это дешевая линия защиты.
Если вы просто освоились с проектированием баз данных, они не будут чем-то тратить много времени, беспокоясь и дорабатывая очень подробно, если у вас есть базовые отношения между родителями и детьми.
Вот немного фона -
Что не так с внешними ключами?