我想要構建如下所示的頁面,並且應該從數據庫中檢索所有數據。術語,主題和句子都從數據庫中檢索。三個級別的數據。在每個學期(例如2017年春季),我都可以在所有這些句子之間進行選擇。當我想要存儲這些類型的數據時,我應該如何構建我的數據庫?
彈簧2017
Subject1
- 語句1
- 句子2
- 句子3
Subject2
- 句子13
- 句子12
- 句子17
Subject3
- 句子11
- 句子14
- 句子19
Autmn 2017年
...
我想提出類似的信息從數據庫到用戶,並讓這一切句子之間的用戶選擇。我應該如何建立我的數據庫,以最好和最有效的方式實現這一目標。
一種方法是:
Table 'subject' Table 'sentences'
| id | subjects | | id | subjectid | name |
| 3 | Subject1 | | 1 | 3 | Sentence 2 |
| 4 | Subject2 | | 2 | 4 | Sentence 13 |
Table 'term'
| id | term | sentenceid |
| 1 | Spring 17 | 1,2,28 |
另一種方式是,也許使用樞軸表,是這樣的:
Table 'sentences'
| id | parentid | name |
| 1 | 0 | Subject2 |
| 2 | 3 | Sentence 2 |
| 3 | 0 | Subject1 |
| 4 | 1 | Sentence 13 |
Table 'term'
| id | term | sentenceid |
| 1 | Spring 17 | 2,4,28 |
注意:語詞的數量可能比只有兩個更多的一年。 這是你推薦的任何這種結構,或者你認爲我應該建立我的數據庫的任何其他方式嗎?其中一個更有效率?不那麼苛刻?更容易調整?
我不明白你想做什麼,但我可以告訴你,在一個字段中存儲逗號分隔值會導致痛苦和沮喪,所以我不喜歡這些選項。 – JNevill
術語,主語和句子均從數據庫中檢索。三個級別的數據。在每個學期(例如2017年春季),我都可以在所有這些句子之間進行選擇。 – William82