2013-03-25 3 views
0

나는 이것을 위해 데이터베이스 설계를 정말로 고심하고있다.어떻게 스토리지 시스템을 설계 할 수 있습니까?

이것은 내 자신의 CS 프로젝트입니다. 즉,이 코드 전체가 제 생각입니다. 어쨌든 그림에 표시된 모든 정보를 저장하는 가장 효율적인 방법을 알고 싶습니다.

ArrayList를 사용하는 것에 대해 생각했지만 arraylist가 작동하는지 여부를 반복적으로 질문했습니다. 아마도 데이터베이스를 사용할 수 있지만 아직 배웠습니다.

그림은 꽤 설명이 있어야합니다. 이 정보는 모두 1 명의 학생에게만 공개됩니다. 그렇다면 최소한 20 명의 학생 정보를 저장할 수있는 최상의 데이터 저장 시스템을 어떻게 설계 할 수 있습니까? 도움을 http://j.stack.imr.com/0Q.png

감사 :

나는 이미지를 게시 할 수 없기 때문에,이 링크를 클릭하십시오.

+0

데이터베이스라고 생각합니다. 로컬 MySQL 데이터베이스를 실행할 수 있도록 XAMPP를 설치하십시오. 적절한 테이블을 작성하십시오. 그런 다음 SaveActionPerformed를 수행하고 해당 메소드에 필드에 삽입 된 모든 값을 로컬 DB에 전달할 수 있습니다. –

+0

이 시스템을 사용 하시겠습니까? –

+0

데이터베이스가 현명 할 것입니다 ... 아마도 XML로 멀리 떨어져 나가고 정말로 원한다면 Excel을 수행 할 수 있습니다. –

답변

0

학생 당 한 행을 가진 하나의 데이터베이스 테이블과 할당 당 한 행을 가진 다른 데이터베이스 테이블의 경우처럼 보입니다. 데이터베이스를 각 학생 레코드에 대한 인덱스 (관계형 데이터베이스의 현재 유행)로 만들거나 고유하고 영구적이라고 가정 할 때 학생 ID 번호를 사용할 수 있습니다 (약한 선택이라고 생각합니다). 모든 학생 기록과 모든 과제 기록에는이 색인이 있으므로 모든 과제는 단 하나의 학생과 연관되어 있지만 한 학생과 관련된 많은 과제를 가질 수 있습니다.

사용할 수있는 많은 데이터베이스가 있습니다. 나는 Derby를 사용하고 좋아했습니다. 이 프로그램에서만이 프로그램에 액세스하는 경우 "임베디드"데이터베이스로 사용할 수 있으므로 프로그램에 연결할 데이터베이스 서버를 실행하는 데 어려움이 없습니다.

행운을 빈다.

0

가장 좋은 방법은 데이터베이스를 통해 이루어질 것입니다.
당신은 DB에 대해 많은 날 올바른 방향으로의
먼저 당신을 가리킬 수 있도록 잘 모릅니다 언급 한 이후 모든 설치 XAMPP 당신은 JDBC 드라이버를 설치해야

(이 당신이 당신의 로컬 컴퓨터에 MySQL 데이터베이스를 만들 수 있습니다) 당신의 IDE에 더 많거나 적은 양식을 가지고 당신이 다른 클래스에 SaveActionPerformed을 만들 수있는이 일

public class SQLConnect 
{ 
    public static Connection ConnectDb() 
    { 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn = null; 
      try { 
       conn = DriverManager.getConnection("jdbc:mysql://localhost/w1283057", "root", ""); 
      } catch (SQLException ex) { 
       Logger.getLogger(SQLConnect.class.getName()).log(Level.SEVERE, null, ex); 
      } 
      return conn; 
     } 
     catch (ClassNotFoundException e) 
     { 
     System.out.println("not connected"); 
     e.printStackTrace();//print extra info if error is thrown 
     return null; 
     } 

    } 


} 

(같은 클래스를 생성하여 프로젝트에서

을 (또는 넷빈즈 것은 당신이 사용하는 어떤 일식) 테이블 w hatever)
그것은이 같은 (당신이는 SQLConnect 클래스와 연결을하고 데이터베이스에 데이터를 삽입하는 경우 희망

public class Something extends javax.swing.JFrame 
{ 
     Connection conn = null; //A connection (session) with a specific database 
     ResultSet rs = null; //A table of data representing a database result set, which is usually generated by executing a statement that queries the database. 
     PreparedStatement pst = null; //An object that represents a precompiled SQL statement.A SQL statement is precompiled and stored in that object 

    private void SaveActionPerformed(jawa.awt.event.ActionEvent evt) 
    { 
     try{ 
     conn = SQLConnect.ConnectDb(); 
     //inserting all values to database    
     String sql = "INSERT INTO bla" 
        + "(foo, foo1, foo2, foo3, foo4, etc" 
        + "VALUES (?, ?, ?, ?, ?)"; 
     pst = conn.prepareStatement(sql); 

    //Than you take all values from the fields and put them into db 
    // i.e. You have field name Mark. In order to put this into db you need 

    pst.setString(1, Mark); <- this means that preparestatement will put whatever is in the mark into first column. 
    pst.executeUpdate(); <- order to execute 

     } 

이는 바른 길에 당신을 둘 곳없는이 제발 보일 수 있습니다

0
나를 위해

그것을 할 수있는 가장 좋은 방법은 PostgreSQL을 사용하는 것입니다. 당신은 모든 학생 데이터가 저장 될 테이블 학생 (예를 들어) 만 있으면됩니다. 그 다음에는 테이블을 설명하고 학생 또는 기타 검색과 같은 몇 가지 작업을 수행하는 클래스 또는 둘 이상 (사용자에 따라 다름)을 만들 수 있습니다. Postgresql의 주요 장점은 서버가 필요 없다는 것입니다! 여기가 tutorial

관련 문제