Как правильно спроектировать БД MySQL?
не понятно зачем иметь 4 таблицы для похожих сущностей — post,news,special, special_page. Если ихъ обьеденить, то сразу вопрос с комментами отвалится.

имхо очень плохая практика иметь безликие id, name — лучше иметь blog_id, post_name и сразу все понятно без разглядывания схем или ключей
Как минимум мы тут видим кучу внетренних, непонятно за что отвечающих переменных.
так что пока не будет нормального тз с описанием что надо и как вы видите решение этой проблемы — Ваша диаграмма 90% пользователям ничего не скажет