For example, I have posts, answers for post and comments for answers.
What better: to have each table for each entity (posts, answers, comments) or one table with ‘post_type’ and ‘parent_id’ parameter?
UPD: answers and comments are similar with properties.
Whether you have separate tables for posts and comments depends partly on whether one can be used instead of the other and partly on how similar is the processing on each. Put another way, how much information is unique to each? If there is nothing or almost nothing unique to each, then one table would very probably work.