thank you for all of your input!
It seems that no one will normalize a database in exactly the same way. I've tried my best to structure the database according to the normal forms. My primary keys are all integers because they result in better MySQL performance (so I've been told). Looking at my tables I'm happy enough to have the continent name in the country table.
restaurant_id, restaurant_name, city_id, other columns
city_id, city_name, region_id
region_id, region_name, country_id
country_id, country_name, continent_name
@Jeff. Thanks for the info on the joins. It will hopefully be enough to have only the city_id in the restaurant table.
I have seen e-commerce “customer” tables that include columns for first name, last name, city, state, zip etc all in one table. Then why can't I do the same? Have all the location columns in the restaurant table. What would be the harm?