2016-08-24 155 views
1

我正在建立一個簡單的網站來保存我在日語中學習的所有東西(個人愛好^^)。多張桌子與同一張桌子有關係

我有幾個表,說kanjis(其中列出所有的漢字課),grammars,new_words。等等。對於每種類型的列表,我希望每個項目都有一個或多個示例句子(每個漢字信函的例句,每個新語法或新單詞...)

所以我的問題在於:我應該有單獨的example_sentences表上面的每個類型的項目,或者我可以共享1 example_sentences與所有kanjis,new_grammars,new_words。等等。

這裏的另一個問題是:如果我想要1 sample_sentences可以重複使用(比如說,1個句子可以連​​接到1個以上的新單詞,或者1個新單詞和1個語法註釋等)。一個多到多 - 的關係,我仍然只需要1通用sample_sentences,然後爲每個類型的kanjisnew_wordsgrammars一個join_table ...

我畫的圖像對於這裏的第二個問題(不好意思,我用油漆畫出來。)

enter image description here

+0

在辦公室裏,看不到圖像。我編輯了我的答案,添加了一個多對多的提案,並檢查它是否可行 –

回答

0

爲您的示例存儲的「材料」將始終是一個句子,因此它是相同的材料,因此您只需要一個表格。


在一對多的關係中,你的第一個問題,那很簡單。 只有一個example表與列以知道它來自哪個orig表。

ID | Orig  | OrigID | Sentence 
---------------------------------------------- 
1 | Kanji | 1  | whatever 
2 | grammars | 1  | whatever 
3 | Kanji | 2  | whatever 
4 | Kanji | 3  | whatever 
5 | grammars | 2  | whatever   
6 | new_words| 1  | whatever  

在許多一對多的關係,你的第二個問題,這是一個比較複雜一點

example表將是:

ID | Sentence     
--------------------------   
1 | whatever      
2 | whatever      
3 | whatever      
4 | whatever      
5 | whatever      
6 | whatever      

而且Many-to-Many表將是:

ID | ExampleID| OrigID| Orig  | 
---------------------------------- 
1 | 1  | 1  | Kanji | 
2 | 1  | 1  | grammars | 
3 | 2  | 2  | Kanji | 
4 | 3  | 3  | Kanji | 
5 | 2  | 2  | grammars | 
6 | 6  | 1  | new_words| 

而且您需要大多數時間查詢此表的所有時間:Orig + OrigID

0

例句是一個實體,應該有它自己的表。例句可能會有多個「新單詞」以及多個「語法」因此,您希望例句和語法之間存在M到M的關係,並且您希望例句和例子之間存在不同的M到M關係新詞。