【问题标题】:Data storage design for nested data [closed]嵌套数据的数据存储设计
【发布时间】:2012-08-09 15:37:14
【问题描述】:

所以我正在为一个学校项目编写一个相当简单的 Java 应用程序,它基本上必须存储一些有关用户输入的各种公司的信息。

数据类型类似于:

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

我最初想使用 sqlite db 来存储它,但我不确定如何在不重复数据的情况下将这样的嵌套数据存储在 db 中。然后我想到了使用 XML 什么的。

那么存储这些数据的好方法是什么:sql 数据库、xml 或其他?

【问题讨论】:

  • 我会做任何你认为最简单的事情。一个学校项目不太重要,只要它有效。

标签: java sql xml database


【解决方案1】:

我认为 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;
}

每个公司都有自己的调查,有自己的类别,有自己的问题。

【讨论】:

    【解决方案2】:

    存储为 XML 或将其存储在数据库中,如下所示:

    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
    -------------------
    

    【讨论】:

    • 我想我可能会尝试这样的事情。我将使用:create table if not exists companies (company TEXT, surveyID INTEGER, catRef INTEGER)create table if not exists categories (catID INTEGER, catName TEXT)create table if not exists questions (questionID INTEGER, question TEXT, catRef INTEGER) 创建数据库
    【解决方案3】:

    如果您愿意使用 XML 来存储数据,最好的方法是创建一个表示您的数据层次结构的类层次结构(如 @Doug Ramsey 发布的那样)。从您的数据创建对象并使用 JAXB(Java 绑定 XML 架构)将该对象转换为 XML 文件。

    【讨论】:

      猜你喜欢
      • 2011-02-07
      • 2021-09-27
      • 2019-06-20
      • 1970-01-01
      • 2019-12-17
      • 2015-12-22
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多