2012-08-09 71 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文件。