我有3個數據庫表,我需要正常化它們。像這樣的表之間的關聯:SQL表協會
表: 1.問題 2.答案 3.評論
- (問題可以包含很多的答案和許多評論)
- (答案都可以包含許多評論)
我知道我可以在一個表格中使用問題和答案,然後我解決了這個問題,但是我想以這種方式使用它,那麼什麼是最好的方法來將'comments'與'問題'和'答案'?
我試着把問題ID和答案ID放到評論表中,每行只使用其中一個,對嗎?這樣我可以在PHP腳本中使用它們,但我不知道是否有另一種更好的方法,因爲我問了。
謝謝。
我有3個數據庫表,我需要正常化它們。像這樣的表之間的關聯:SQL表協會
表: 1.問題 2.答案 3.評論
我知道我可以在一個表格中使用問題和答案,然後我解決了這個問題,但是我想以這種方式使用它,那麼什麼是最好的方法來將'comments'與'問題'和'答案'?
我試着把問題ID和答案ID放到評論表中,每行只使用其中一個,對嗎?這樣我可以在PHP腳本中使用它們,但我不知道是否有另一種更好的方法,因爲我問了。
謝謝。
我想將它們設置爲如下:
Posts (both Questions and Answers would be types of "Posts"):
Post_ID
[Fields Common to Posts, e.g. "Post_Content", "Poster_ID", "Post_TimeStamp" etc.]
Questions:
Question_ID
Post_ID
[Question-specific fields, e.g. "Question_Title"]
Answers:
Answer_ID
Post_ID
[Answer-specific fields]
Comments:
Comment_ID
Post_ID
[Comment fields]
有一個單獨的帖子表的主要思想是一定要規範你的數據庫,並允許有邏輯結構徵求意見指向兩者。就像APC評論的那樣,它也爲您開發將來開發您的網站/數據庫提供了一個很好的設置(當您可能需要其他類型的可評論「帖子」時。
儘管下面列出的枚舉方法可行,但它不是很好數據庫設計。一般情況下,我只會用枚舉,當你代表項目的真實世界的名單建議..不適合舉辦數據庫結構。
使用額外的type
字段中comments
表持有"question"
或"answer"
對於多態關聯。查詢然後包括該字段:
SELECT * FROM `comments` WHERE `type` = 'question' AND `foreign_key` = 42
值得看看它是如何做它http://data.stackexchange.com/stackoverflow/query/new – 2011-05-27 04:37:00
@ConradFrix這是一個很好的貢獻 – Al3bed 2011-05-27 04:48:10