three tables yes, but leave the provinces/states out (use an array to store them, simpler and easier and quicker with no db call for that info)
users_table
user_id
user_fname
user_lname
etc
orders_table
order_id
order_item
order_quantity
etc
user_orders_table
user_id
order_id