In a question/answer forum component I am writing as part of a site, I have two tables that theoretically look like this(that is, I want said data kept for each entity):
THREAD POST thread_id post_id type_id (question) writer_id writer_id thread_id title parent_id body (optional) post_body followers date merge_id upvotes date dnvotes upvotes replies dnvotes views replies post_type_id (e.g. answer, comment to an answer etc.) views anonymous
The only real differences between these entities are merge_id (if a question is merged into another one, this id will reference said question_id), followers, and title. Combining them into one seems a bit cumbersome and bloated to me, and seems to be starting off a bit denormalized I think. And, if they're one, both body and title would have to be be nullable which they shouldn't (I know there can be safeguards in the code).
I also thought of having thread consist of only the attributes not in post which would look like:
THREAD thread_id (or post_id which would be primary and foreign key refing POST) title merge_id followers
but that doesn't feel quite right either.
Also, if it makes any difference, I plan to have the questions displayed along with the highest ranking answer quite often, in the style of quora.
Any design advice would be much appreciated.
(also, I am keeping them someone generic (thread/post) so that if needed I can use these tables for a blog or whatever else later on.)