"has to be accessed thru" does not work in relational database design
a query can access any table it wants to
i can show the relationships are wrong if you show a few rows of sample data from each table such that the data are consistent, i.e. foreign keys must be valid values
if you could please show the data, i'll show you what's wrong
