2010-10-21 68 views
0

我目前的「學習」笨,PHP和MySQL一下子,我試圖創建一個「清單」類型的網站,遊客在這裏註冊,創建一個項目,並問的問題,他們必須輸入某些領域MySQL數據庫設計 - 清單/測驗應用

我對我的MySQL數據庫的設計有點卡住列表...(完全被卡住實際上)

它歸結爲是...

1個項目可以有3種類型之一。 「類型A/B/C」

鍵入具有20個問題

b型 =類型A + 15個問題

鍵入c = b型+ 15層的問題...

所以基本上我希望能夠輕鬆地說,質疑是A型 AND/OR B型不是C

現在,我不知道我在做什麼是正確的,但我基本上是兩張桌子,然後設置它們之間的關係「多對多」(我認爲?)n:m in MySQL工作臺

ProjectType 
id 
ProjectTypeName 

Questions 
ID 
Title etc... 

ProjectType_has_Questions 
ProjectType_id 
Questions_id 

而且,每一個問題 「即可,並不一定要」 有3個結果(當前事實)和3個修正(改進的結果)。

我不知道這是否作出任何意義,任何人在這裏,肯定是地獄的baffeling我: -/

有什麼想法?

PS:我試圖附加的圖像,但看到因爲這使用此不允許該網站是我的第一次。

+0

做題有類型或只是有類型的項目?您的草圖模式似乎只有項目類型。如果問題沒有類型,你的意思是什麼*問題A是類型A *? – 2010-10-21 22:04:37

+0

有幾件事情還不清楚。用戶可以定義自己的項目,還是隻選擇幾個預定義類型的項目中的問題答案?什麼是「當前事實」和「結果改善」? – John 2010-10-21 22:15:42

+0

讓我試着澄清...... 我正在嘗試創建一個與http://www.launchlist.com相媲美的列表,但後來更專注於搜索引擎優化規則。 因此,用戶將註冊,然後提供他必須填寫的列表。 將有三種類型的列表,必須在項目開始時選擇。 我認爲John @ cashcommons的'靈活'的答案,我創建一個鏈接表的路要走嗎? 所以,我會創建一個表格,其中包含所有問題,然後是問題組所在的表格,最後創建一個表格,將組分配給一個問題。 http://alturl.com/ve8y3 - img我的DB EER模型。 – Jbcarey 2010-10-22 06:00:20

回答

0

,我會以我的理解這裏做出迴應。還有一些我在你的問題中評論過的其他問題。

如果您的項目類型總是會聚合的 - 也就是說,類型C始終是類型B的超集,它始終是類型A的超集 - 那麼對於這些​​問題,您可以指定那個特定的最大項目問題將被列入的,說,如果一個問題將出現在A型和B,然後指定問題類型B如果它會出現在所有三種類型,其指定爲類型C.

你犯但是當你這樣做的時候你自己。更靈活的方法是創建一個包含問題ID和項目類型ID的鏈接表。每個問題可以在此表中有一個或多個條目。