I've items during my database (MySQL). I've my prices according to different mixtures of choices for my items. I've the next data:

Items

prodID | prodName
1      | Ball

OPTIONS

optionID | optionName | prodID
1        | color      | 1
2        | size       | 1
3        | material   | 1

OPTIONVALUES

ovID | optionID | ovValue
1    | 1        | red
2    | 1        | blue
3    | 2        | small
4    | 2        | big
5    | 3        | wood
6    | 3        | glass

for prices I must have such as this:

red-colored small wood ball - $13 red-colored small glass ball - 14 red-colored large wood ball - 16 red-colored large glass ball - 17 blue small wood ball - 12.5 [...]

How do i design the database structure with this? I've attempted a number of ways but none of them was good. if the amount of the choices were static then every option might have its very own table, but it was that's a bad solution.

I love what you have. If you would like so that it is fully flexible when i guess you need to do, i'd perform the following:

Add two more Tables.

Product_Instance

instanceID | prodID | price
1          | 1      | 13

Product_Instance_Options

instanceID | ovID
1          | 1
1          | 3
1          | 6

In by doing this you can define all possible combinations and costs on their behalf. May well be a hell of the lot work to setup all of the prices, but when you cannot calculate them (like glass = +2$, small=2$ / large=4$) you'll have nevertheless this you're doing so.

What about something similar to this:

productTypes

prodID | prodName
1      | Ball
2      | Car

productInstances

prodInstanceID | prodID | Prize
1              | 1      | $19
2              | 1      | $50
3              | 2      | $8

qualities

propertyID  | propertyName
1           | color
2           | size
3           | material

propertiesValues

pvID |propertyID  | propertyName
1    | 1          | red
2    | 1          | blue
3    | 2          | small
4    | 2          | medium
5    | 2          | large
6    | 3          | wood
7    | 3          | glass

productProperties

ppID | prodInstanceID | pvID
1    | 1              | 1
2    | 1              | 3
3    | 1              | 6
4    | 2              | 2
5    | 2              | 4
6    | 2              | 7
7    | 3              | 1
8    | 3              | 3 
9    | 3              | 6 

Inside your design you cannot pick which option goes that product instance. Should you review your table optionvalues, there's not a way to group together your choices.