Entries with 2 variables. Do I need to make 2 more tables by entries? In the case of shipment carriers, I have a table with products whose price and delay will vary with 2 variables.

PRODUCT   | SHIPPING DATE | PRICE
Carrier 1 | A             | B
Carrier 2 |               |
...       | ...           | ... 


A : Shipping date will vary with the shipment departure date
B : Price will vary with the weight of the shipment

I will need approximately 20 carriers.

I think I will have to make 2 tables by carrier:

TABLE "Carrier 1 WEIGHT-PRICE"
WEIGHT   | PRICE
0-10 kg  | 10 €
10-12 kg | 12 €
12-16 kg | 14 €
...      | ...

TABLE "Carrier 1 DEPARTURE-SHIPPING DATE"
DEPARTURE HOUR (between) | SHIPPING DELAY
00h am : 09h am          | 12h
09h am : 01h pm          | 24h
01H pm : 06h pm          | 36h
06h pm : 12h pm          | 48h


I hope there is a more optimal solution than that. Any ideas?



I will finally make the DB like this:

prices(id [pk][fk], name, min_weight, max_weight, price)

delays(id [pk][fk], name, min_hour, max_hour, delay)

produit(id [pk], id_price [fk], id_delay [fk])


Is it correct?
Colin 't Hart is correct. Do not mix data in your table names. 

Instead, create a Carrier table consisting of an identifier and the name of the carrier. 

TABLE "Carrier"
ID  | Carrier
22  | Carrier1
31  | Carrier2


Reference the carrier in the weight price and shipping departure tables via the identifier as a FK. So in the case of the weight price table you may have many references to each carrier. 

TABLE "WEIGHT-PRICE"
CarrierID | WEIGHT   | PRICE
22        |0-10 kg  | 10 €
22        |10-12 kg | 12 €
22        |12-16 kg | 14 €
31        |0-10 kg  | 9 €