我前幾次已經解決了這個問題,我已經以這種方式解決了這個問題:
1。)選擇(繼承自Vector,它存儲所有具有標準類的行,具體取決於您所使用的語言)結構:
ID(和用於識別您的選擇的ID) (Select,這是您的Vector類的孩子是行)
ROWNUMBER:整數
得到columnnumber:整數
usedFilter:字符串
usedGroupBy:字符串
usedHavingCaluse:字符串
usedOrderBy:字符串
TABLENAME:字符串
的getID()
getRowNumber():整數
getColumnNumber():整數
getUsedFilter():字符串
getUsedGroupBy():字符串
getUsedHavingClause():字符串
getUsedOrderBy():字符串
getTableName時():字符串
選擇(表名:字符串;過濾器:字符串,GROUPBY :String,havingCaluse:String,orderBy:String,columns:Vector)
2.)我有一個與數據庫直接通信的類,我們稱之爲DataAc cessLayer。讓我們來看看這個類的結構:
DataAccessLayer
連接(...):布爾
斷開(...):布爾
使用(的databaseName:字符串):布爾
selectedData:矢量(其實這是一組選擇的)的
createSelect(表名:字符串,過濾器:字符串,GROUPBY:字符串, havingCaluse:字符串,排序依據:字符串,列:向量):布爾(以確定它是否成功)
deleteSelect(ID):布爾
插入(表名:字符串,列:矢量,值:矢量):布爾型
更新(表名:字符串,columnsToSet:矢量,值:矢量,過濾器: 字符串):布爾
刪除(表名:字符串,過濾器:字符串):INT(有多少行被刪除,-1如果 異常發生,或只是簡單地拋出異常到更高的水平)
//創建/刪除表/視圖/數據庫/約束也可以實現,我只是//懶惰,因爲我你確定你已經理解了這個想法
DataAccessLayer()
發生前兩個步驟後,您可以處理任何具有兩個類的數據庫查詢(事實上,Select的功能也可以放入DataAccessLayer中,使兩個類中的一個類可用,但這樣更優雅),但是,你可能想爲一些表格處理一些額外的東西。這個解決方案很簡單,只要你發現一個表很難使用,你只需要從DataAccessLayer繼承並重新定義你想重新定義的內容,所以在DataAccessLayer中你只能使用protected和public修飾符而忘記private修飾符。因此,關係將是:
選擇1 < - >ñDataAccessLayer
ClassInheritedFromDataAccessLayer延伸DataAccessLayer
前端使用ClassInheritedFromDataAccessLayer1,...,ClassInheritedFromDataAccessLayern,DataAccessLayer。
這樣你的項目將是: - 可管理 - 訂購 - 易於規劃 - 容易實現 - 易於修改 - 由其他人
我希望這有助於
容易理解
此致敬禮。
「我設計了一個由6個表格組成的E-R圖表」 - > ER圖表不包含「表格」,而是「實體」。您似乎已經定義了一張顯示數據庫模式(表,鍵)的圖表 – 2010-06-02 03:34:35