2012-08-09 67 views
0

因此,我正在爲一個學校項目編寫一個相當簡單的Java應用程序,它基本上必須存儲有關用戶輸入的各種公司的一些信息。嵌套數據的數據存儲設計

數據的種類將是這樣的:

Company1 
    Survey1 
     Category 1 
      Question 1 
      .... 
     Category 2 
     .... 
    Survey2 
    .... 
Company2 
.... 

我原本以爲使用的SQLite數據庫存儲在此的,但我不知道如何存儲這樣的嵌套數據在DB不重複數據很多。然後我想到了使用XML或其他東西。

那麼什麼是一個很好的方式來存儲這些數據:SQL數據庫,XML或其他?

+1

我會做你認爲最簡單的事情。一個學校項目在提供它的情況下不太可能重要。 – 2012-08-09 15:40:02

回答

0

存儲爲XML或將其存儲在像這樣的DB:

TABLE Companies 
------------------- 
CID (INT) | SID (INT REF) 
------------------- 

TABLE Surveys 
------------------- 
SID (INT) | SNAME (VARCHAR) | CATNAME (INT REF) | QUESTION (INT REF) 
------------------- 

TABLE Categories 
------------------- 
CID INT | CATNAME VARCHAR 
------------------- 

TABLE Question 
------------------- 
QID INT | QUESTION VARCHAR 
------------------- 
+0

我想我可能會嘗試這樣的事情。創建表如果不存在公司(公司TEXT,surveyID INTEGER,catRef INTEGER)', '創建表如果不存在類別(catID INTEGER,catName TEXT)'和 '創建表如果不存在問題(questionID INTEGER,問題TEXT,catRef INTEGER)' 我認爲我們應該使用db,但像往常一樣,指令是模糊的,老師的答案更模糊 – geniass 2012-08-10 15:55:04

2

我認爲SQL DB是沒有必要的。 我會做這樣的事情:

Class Data { 
    List<Company> companies; 
} 

Class Company { 
    List<Survey> surveys; 
} 

Class Survery { 
    List<Category> categories; 
} 

Class Category { 
    List<Question> questions; 
} 

Class Question { 
    String question; 
} 

每個公司都有自己的調查,其中有自己的類,其中有自己的問題。

0

如果您願意使用XML來存儲數據,做的最好的辦法是創建一個類層次結構,代表你的數據的層次結構(如@Doug Ramsey發佈)。從數據創建對象並使用JAXB(Java綁定XML架構)將該對象轉換爲XML文件。