Что является более грамотным - довольно скользкая тема.
Более правильное академически - нормальные формы и т.п.?
На практике частенько приходится отходить от норм реляционной теории данных. Например, дублировать данные, чтобы местами избежать джойнов в запросах, которые будут выполняться очень часто.
Если комментарии и к вопросам и к ответам - одинаковая сущность, то я бы сделал их одной таблицей. И в ней 2 поля (помимо прочих):
question_id
- связь с вопросом; всегда существует.
answer_id
- связь с ответом; NULL если был прокомментирован именно вопрос.
Таким образом, мы можем запрашивать комментарии без необходимости джойнить таблицы, как ко всему вопросу и его ответам, так и отдельно к вопросу, и к конкретному ответу на вопрос.