I am building a database for a local automobile dealership.

The client wants a drill down option for locating service plans and I am trying to work out the logic.

So basically the first thing the user does is select the vehicle model then the year the transmission and then the KM’s / Miles (This data is used to locate the service plan):

![enter image description here](https://i.stack.imgur.com/s9jKJ.png)

This is done via drop down menus populated with values from the database.

Now the service plan pricing per task changes dependant on the KM’s / Miles and is never the same between vehicles.

So visually it looks like this:

![enter image description here](https://i.stack.imgur.com/Ex7Pi.png)

So the first 4 columns (Model, Year, Transmission, KM’s) are the values for the drop downs and its these values that determine which service plan to use (and yes some vehicle names repeat due to having either automatic or manual transmission as demonstrated in above table - and I will need to make sure they do not repeat in the drop downs).

Now what I am wondering is how do I lay this out in MySQL to work with a PHP query would I

fill all the blank cells with duplicate data e.g

![enter image description here](https://i.stack.imgur.com/Z7U6T.png)

**or** 

Use normalisation somehow (somebody suggested this to me) unfortunately I am new to databases and not quite sure how to work this, I realise it means having smaller relational tables but I don’t quite understand the logic.