Why are there two database tables to handle taxonomy terms structure There is a taxonomy_term_data table and there is a taxonomy_term_hierarchy table.  Why are there 2 tables, instead of them being combined?

taxonomy_term_hierachy strucutre 


description of table: Stores the hierarchical relationship between
field: tid: 'Primary Key: the taxonomy_term_data.tid of the term'
field: parent: 'Primary Key: The taxonomy_term_data.tid of the term's parent.
0 indicates no parent.'


taxonomy_term_data structure:


description of table: Stores term information.
fields: vid, name, description, format, weight


Question motivation
I am the maintainer of the draggableviews module.  Currently module is using just 1 table.  Going forward, the module's goal is to mimic taxonomy structure.  Tried to search the web for an answer but could not find one.
taxonomy_term_data is the base table for the taxonomy entity type. It holds ID, property and bundle data for that entity type.

taxonomy_term_hierarchy holds the parent/child relationship between taxonomy terms (which of course can be multiple in nature).

You can't store the data for anything more than a one-to-one relationship in the same table, hence the split into two.