I have a comments table for blogs, articles, profiles. A comments table could be a supertype and comments_blog, comments_article, comments_profile could be subtypes.
Should supertype/subtype be used in database design since it is object oriented design or should have 3 distinct tables?
it depends on the details. There are arguments for each approach. Basically, the more data that is shared between the tables, the more sense it makes to ‘normalize’ the data and use ‘supertype/subtype’ as you put it. Note that if you take this approach, your sql can get pretty complicated and you will have to join across the tables.
Another option is to have one table and use a simple column like ‘comment_type’ to differentiate between if it is a blog, article, or profile. The sql for that approach would be real simple too and its just a
where comment_type = 'whatever'. Be sure to index the ‘comment_type’ column. This approach makes less sense if the columns in your tables are drastically different.