Option one is better, since the problem with option 2 is that it is completely legal, giving the machine the size of "edster"
INSERT INTO car
(Car_size, color)
Values
('edster', 'red')
With option 1, you could not do this (without first inserting into the car_size table)
This insert will do nothing
INSERT INTO car
(Car_size_id, color)
SELECT
car_size_id , 'red'
FROM
car_size
WHERE
car_size.name = 'edster'
And if your car_size table contains only two records, this will result in an error with an error
INSERT INTO Car
(Car_size_id, color)
Values
(3,'red')
FK (, BIG GRANDE, ..), , , .