0
public class Table{

private String column[];
private String dataType[];
private boolean PK[];
private boolean NN[];
 private int count;
public Table()
{
    count =0;
}

public void AddColumn(String name,String dtype,boolean pk,boolean nn)
{

     column[count]=name;
     dataType[count]=dtype;
     PK[count]=pk;
     NN[count]=nn;
     count++;
} 


 public void Display(Table T)
 {

 }  

 public void DeleteColumn(String name)
{
  if(count==0){return;}
  else if(count ==1)
  {
      if(name==column[0])
         column[0]=null;
         dataType[0]=null;
        count--;
         return;
  }

  else 

  for(int i=0;i<count;i++)
  {
      if(name==column[i])
      {
          column[i]=column[count-1];
          dataType[i]=dataType[count-1];
          PK[i]=PK[count-1];
          NN[i]=NN[count-1];  
      }
  }


 }

これは私のテーブル クラスです。エンティティテーブルを設計し、列の名前のデータ型などを保持するためです。このクラスとそのプライベート属性は正しいですか、それとも属性などのより多くのクラスに分割する必要があります。

4

1 に答える 1

0

Columnクラスを作るべきだと思います。

私はこのようにします(もちろん、もっとうまくやることもできます):

public class DataType {
    public static String DATA_TYPE_1 = "dataType1";
    public static String DATA_TYPE_2 = "dataType2";
    public static String DATA_TYPE_3 = "dataType3";
}

public class Column() {
    private String name;
    private DataType dataType;
    private boolean PK;
    private boolean NN;

    // getters and setters
}

public class Table {
    private ArrayList<Column> columns;

    public Table() {
        columns = new ArrayList<Column>();
    }

    public boolean AddColumn(Column column) {
        columns.add(column);
    }

    public boolean DeleteColumn(String name) {
        for (Column c : columns) {
            if (c.getName().equals(name)) {
                return columns.remove(column);
            }
        }
        return false;
    }
}
于 2013-04-08T15:43:59.463 に答える