вот например я хочу написать форум на пхп, как мне в нём лучше сделать иерархию в базе данных?
Если не нужно посылать то тогда поставь какой-нибудь форум и посмотри как там все организовано... Вопрос весьма сложный и специфический(для каждой задачи свои принципы). Если совсем обобщить то:
в общем случае поля базы имеют вид:
=============+==============+=======+
Идентификаторы | Служебная инфа | Значения|
=============+==============+=======+
Идентификаторы используются для сортировки, фильтрации и группировки данных, служебные поля несут идентификационную нагрузку, над полями-значениями выполняются различные арифметические действия.