Question on Design for User + User Groups + User Types + Subscriptions Model
I think you overdid normalization:


I dont see the purpose of the user_names table, i would store the names in the user 
table
Same for basic_user table, i would store the email and password in the user table as well
A subscription can have multiple statuses? if not i would put id_status in the subscription table