我有两张桌子,一张问题表和一张答案表。
然后我有一个评论表,以便评论可以附加到问题或答案。每个问题或答案都有很多评论。
我应该创建两个评论表吗?或者将问答表与单个评论表相关联。我更喜欢这个,但似乎它不是标准化的。
答案 0 :(得分:3)
使用问题和答案表中的两个外键创建注释表。足够了。
答案 1 :(得分:2)
这取决于。通常,您希望拥有外键关系。如果每个问题/答案只允许一条评论,那么很容易。每个表commentId
和Questions
都有一个Answers
。外键关系很简单。
维护外键关系并允许多个注释有点过时。可能最简单的方法是使用两个联结表QuestionComments
和AnswerComments
。这需要适当的父级和Comments
表。
注意:为什么您需要单独的注释表来实现这两个目的。例如,您可以将答案的评论分类到不同的组中。或者,您可能只允许每个用户对一个问题发表一条评论。如果注释位于不同的表中,则可能更容易实现这些不同的业务规则。
答案 2 :(得分:1)
你可以使用评论表来回答问题表,使用联接
table question: id |questionDes |commentId| 1 | what | 2 | table answer |id | answerDes| commentId| |201| yes | 44 | table comment |id |commentDes| commentId| |2 | hi |2 | |4 |nii | 44 | you sql query will be-- SELECT questionDes.question, commemtDes.comment FROM question INNER JOIN comment ON commentId.question=commentId.comment; and SELECT answerDes.answer, commemtDes.comment FROM answer INNER JOIN comment ON commentId.answer=commentId.comment;