1.Master_Market
2.Master_Product (FK to Primary of Master_Market )
3.Master_Model (FK to Primary of Master_Product )
but user will be selecting Master_Model level info, i am saving Master_Model internal id (PK) into database.
There's nothing wrong with this design and as mentioned it's in 3rd normal form.
but when ever i want to load particular Models for a product under a market i need to join 3 tables with two inputs i.e. Market & Product.
Steve was saying there's "Market_ID" in Master_Product table, hence you don't have to link 3 tables instead you can get the result by joining Master_Product and Master_Model tables. But yes, To get Market name you will have to join Master_Market as well.
Just an opinion,
Why don't you create a VIEW, joining all the 3 tables and you can simple query that VIEW like a single table..?