The two problems with this approach would be
a) The foreign key constraint. There is no simple way to specify
if the comment_type_id is "Article" then check if this parent_id exists in Article table
if the comment_type_id is "Blog" then check if this parent_id exists in Blog table
--- and so on..
Most places I have seen ignore the foreign key constraint and do the check in the application layer (java, .net.. whatever) when a comment is added. This introduces further complexities like concurrent users and transactions and locking.
b) The second issue is when some of the comments have specific data (related only to a blog, article, or news). Even if there is one, make sure you include it as a separate column and not having generic columns like "additional_column_1".