2016-04-22 78 views
0

我正在嘗試使用android創建一種測驗,並且這樣做我將主題和問題存儲在sqlite數據庫中,現在我的問題是主題可以有多個問題,一個問題可以適用於多個主題如何將這個數據庫放到數據庫中任何幫助將是一個讚賞的謝謝如何在數據庫中存儲具有重複值的值

回答

1

您將需要三個不同的表。一個用於您的主題,一個用於您的問題,另一個用於存儲問題和主題的ID,因此多個可以鏈接在一起。

像你有話題:1:食物,2:汽車,3:動物。 問題:1:貓駕駛什麼樣的車? 2:狗吃什麼樣的食物?

,並在第三個表將它們鏈接你會:

topic_id | question_id 
2  | 1 
3  | 1 
1  | 2 
3  | 2 
0

你需要一個映射表,同時持有的問題和回答Id's,所以需要3個表。

假設你有一個表「問題」:

Question 1 with Id 1 
Question 2 with Id 2 
Question 3 with Id 3 

另一個表「答案」:

Answer 1 With Id 1 
Answer 2 with Id 2 

比方說,問題1可以有兩種答案,你需要與它們關聯表「QuestionAnswers」與2列,其中一個持有問題的Id和一個持有問題的Id:

CREATE TABLE [MyDatabase].[dbo].[QuestionsAnswers](
[QuestionId] [int] NOT NULL, 
[AnswerId] [int] NOT NULL) 

允許簡化此,使5個關係:

QuestionId | AnswerId 
1   | 1 
2   | 1 
2   | 2 
3   | 2 
1   | 2 

答案2涉及問題1,2和3

問題2涉及回答1和2

0

使用第三範式[see Wikipedia]你會做類似以下的事情:

你有3個表格。你的table_categories,table_questions和第三個表,代表這兩者之間的m-to-n關係。 這是通過簡單地爲每個1對1的關係創建一個行來實現的,如下所示。

table_categories 
_______________________________________ 
id  name 

1  "culture" 
2  "history" 
... 
42  "animals" 


table_questions 
_______________________________________ 
id  name 

1  "Which fo the following is not a member of the EU?" 
2  "When was the last FIFA world cup in Europe?" 
... 
42  "Who was Jimmy Hendrix?" 


table_question_categories 
_______________________________________ 
id  fk_id_question fk_id_category 

1  4     5 
2  4     37 
... 
42  42    5 
相關問題