You can search around this forum for “hierarchy” to see some other discussions on this topic.
(See Some modelling advice - #12 by KenWhitesell, and the external link referenced in that comment.)
In general, there are at least three different mechanisms for representing a hierarchical data structure in a relational database effectively. They all require additional data beyond a Foreign Key relationship.
Personally, I recommend treebeard, because it implements all three of the common algorithms.