2013-04-08 82 views
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]; 
     } 
    } 


} 

這是我的表類;因爲即時通訊設計一個實體表和保持列名稱數據類型等是這個類和它的私有屬性是否正確,或者我應該把它分成更多的類,例如屬性。ERD的實體類

回答

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

好嗎? – Asdakamessoy 2013-04-08 15:46:26

+0

非常感謝!但是,你能幫我用刪除列功能嗎? – Asdakamessoy 2013-04-08 15:52:02