Creating user profile types
There is Profile 2 module


  Profile2 allows for creating multiple profile types, which may be
  assigned to roles via permissions (e.g. a general profile + a customer
  profile)


Also check this wonderful answer by kiamlaluno