Я бы использовал записи:
-record(post, {title, date_created, body, comments = []}).
-record(comment, {created_by, date_created, content}).
Тогда, если вы хотите использовать mnesia в качестве базы данных:
Post = #post{title = "", body = "", date_created = erlang:universaltime()},
mnesia:transaction(fun() -> mnesia:write(Post) end).
Чтобы добавить комментарий:
Comment = #comment{created_by = "", content = "", date_created = erlang:universaltime()},
mnesia:transaction(fun() ->
[Post] = mnesia:read(post, Title),
PostWithNewComment = Post#post{comments = [Comment | Post#post.comments]},
mnesia:write(PostWithNewComment)
end).
Я не проверял код, но это то, что я хотел бы сделать. Также я предположил, что каждый заголовок уникален.