• 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..?