Можно выстроить иерархию сущностей например: message<-posts; message<-comments и связывать с базовым типом UserMessage.
При этом можно post и comments хранить в одной широкой, но разреженной таблице (часть полей используется для хранения данных posts часть для comments, не нормализованная форма db)