我有兩張桌子,一個問題桌子和一個答案桌子。一張桌子可以成爲兩個父母桌子的孩子嗎
然後我有一個評論表,以便評論可以附加到問題或答案。每個問題或答案都有很多評論。
我應該創建兩個評論表嗎?或者將問題和答案表都與單個評論表相關聯。我更喜歡這個,但它似乎是非標準化的。
我有兩張桌子,一個問題桌子和一個答案桌子。一張桌子可以成爲兩個父母桌子的孩子嗎
然後我有一個評論表,以便評論可以附加到問題或答案。每個問題或答案都有很多評論。
我應該創建兩個評論表嗎?或者將問題和答案表都與單個評論表相關聯。我更喜歡這個,但它似乎是非標準化的。
這取決於。一般來說,你想擁有外鍵關係。如果每個問題/答案只允許一條評論,那麼很容易。 A commentId
進入每個表中,Questions
和Answers
。有一個簡單的外鍵關係。
保持外鍵關係,並允許多個評論是有點竅門。最簡單的方法可能是有兩個聯結表,QuestionComments
和AnswerComments
。這想要適當的父母和Comments
表。
注意:是有原因的,你想爲兩個目的獨立意見表。例如,您可以將答案的評論分爲不同的組。或者,您可能只允許每個用戶對某個問題發表一條評論。如果註釋位於不同的表中,這些不同的業務規則可能更容易實現。
要擴展Gordon的答案......您的問題可能會揭示您架構中缺少的表或您即將實現的內容。如果一個Child表在一張桌子上顯然沒有單個父鍵,那麼你可能會做些什麼,你會後悔的。我不知道你的情況的默認答案是你想要兩張表。當您將FK加入模型中的「測試服務實例標識」表時,此細節可能會顯現出來。 –
@SqlSurfer你說得很好。 –
可以用評語表通過使用連接
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;
從問題的兩個外鍵創建comments表,並回答表回答,問題表。它夠了。
是的,它可以。 – i486