0

このためのデータベースの設計に本当にこだわっています。

これは私自身の CS プロジェクトです。つまり、このコード全体が私の考えです。とにかく、写真に示されているすべての情報を保存する最も効率的な方法を知りたいです。

ArrayList を使用することも考えましたが、arraylist が機能するかどうかを繰り返し自問しました。おそらくデータベースを使用できますが、まだ学習していません。

絵はかなり自明であるはずです。これらの情報はすべて、1 人の学生にのみ属します。では、少なくとも 20 人の学生の情報を保存するための最適なデータ ストレージ システムを設計するにはどうすればよいでしょうか?

画像を投稿できないので、このリンクをクリックしてください: http://j.stack.imr.com/0Q.png

手伝ってくれてありがとう。

4

3 に答える 3

0

学生ごとに 1 つの行を持つ 1 つのデータベース テーブルと、課題ごとに 1 つの行を持つ別のデータベース テーブルの場合のように見えます。データベースに保存した各学生レコードのインデックスを作成させるか (リレーショナル データベースの現在の方法)、一意で永続的であると仮定して学生 ID 番号を使用することができます (弱い選択だと思います)。すべての生徒レコードとすべての課題レコードにはこのインデックスが含まれているため、すべての課題は 1 人の生徒のみに関連付けられますが、1 人の生徒に多くの課題を関連付けることができます。

利用可能な無料のデータベースが多数あります。私は Derby を使用し、気に入っています。このプログラムからのみアクセスしている場合は、「組み込み」データベースとして使用でき、プログラムが接続するデータベースサーバーを実行するという頭痛の種を節約できます。

幸運を。

于 2013-03-25T02:37:35.033 に答える
0

それを行う最善の方法は、私が信じているデータベースを介することです。
あなたはDBについてあまり知らないと言ったので、正しい方向に向けさせてください
まず最初にXAMPPをインストールします(これにより、ローカルマシンにMySQLデータベースを作成できます)

JDBCドライバーをIDEにインストールする必要があります(使用しているものは何でもnetbeansまたはEclipse)

プロジェクトで、多かれ少なかれこのようなクラスを作成します

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

  }


}

次に、他のクラスで SaveActionPerformed を作成できます (フォームテーブルがある場所)
それは次のようになります (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

      }

うまくいけば、これはあなたを正しい軌道に乗せるでしょう

于 2013-03-25T02:38:09.797 に答える
0

私にとって最善の方法は、Postgresql を使用することです。すべての生徒データが格納されるテーブル Student (たとえば) が必要です。その後、テーブルを説明し、学生の検索などのアクションを実行するクラスまたは複数のクラス (あなた次第) を作成できます。Postgresql の主な利点は、サーバーを必要としないことです。ここにチュートリアルがあります

于 2013-03-25T02:39:11.663 に答える