Supertypes and subtypes
Yes the code in Update 3 will work and you will be able to select the information you need. If you are comfortable with that then go for it.  Keep in mind that means you will have to either duplicate your Painter type in both the sub and super type, or leave Painter as a sub type without a super type.  Either way this is a little bit awkward but workable.

Assuming the tables really are as small as you say,and your requirements as simple as they seem you might want to consider compressing the business data down into one table.  It won't look as sexy as other solutions but CRUD operations will be dead simple. I don't know MySql very well so please excuse any silly syntax errors:

CREATE TABLE users (user_id INT NOT NULL, user_type_id INT NOT NULL, busniess_id INT, etc);
CREATE TABLE user_type (user_type_id INT NOT NULL, name VARCHAR(50) );
CREATE TABLE business (business_id INT NOT NULL, business_name VARCHAR(50) NOT NULL, business_type_id INT NOT NULL, business_subtype_id INT, etc);
CREATE TABLE business_type (business_type_id INT NOT NULL, name VARCHAR(50) );
CREATE TABLE business_sub_type (business_sub_type_id INT NOT NULL, name VARCHAR(50) );


Like I said that isn't sexy but it will get the job done.  It is a bummer that MySql doesn't offer check constraints because they could offer a touch of protection.  

If your requirements get any more involved I would seriously reconsider @MDCCL's post.  My gut says this is the best solution out of the mostly ho-hum solutions I can envision.  To quote another answer to that question :


  The Answer by MDCCL is fascinating, educational, and presumably correct (though above my pay-grade).