By default, Drupal 7 provides a limited number of widget types (select list, radio buttons, checkboxes and autocomplete text fields) for taxonomy(term reference) field which in some cases might not do the work.
For e.g, lets take a scenario of parent and child taxonomy term relation, in this case the content creator would not be able to select terms in hierarchical manner which can lead to confusion.
However, these issues can be overcomed with the help of some awesome Drupal contrib modules that will provide additional widget types for term reference fields.
Lets take a look at these modules.
Hierarchical Select, as the name suggests, defines the "hierarchical_select" form element, which is a greatly enhanced way for letting the user select items in a hierarchy.
This module provides an expandable tree widget for the Taxonomy Term Reference field in Drupal 7.
Inspired by Hierarchical Select module, this module provides a widget for taxonomy fields to select a term by "browsing" through the vocabularies hierarchy.
Multiselect module defines a widget to be used with drupal fields and allows user to select multiple items in an easy way.