支援差異資料儲存的資料庫實體類設計——處女作

來源:互聯網
上載者:User

物件導向開發過程中大家經常碰到的一個東東——資料實體。

在實體物件執行個體的某一個資訊被修改後,面臨一個資料儲存的問題,網上可以搜尋到很多不同的儲存方法,這裡提供小蝦(本人)曾經用過的幾種常用方法:

  1. 根據需要,將修改過的屬性群組合成SQL語句(未修改的屬性不作處理),然後執行資料庫命令儲存資料;
  2. 提前寫好實體物件的SQL語句,如string sql = "UPDATE TableName SET ColumnName1 = {0}, ColumnName2 = {1}, ...  WHERE PK_ColumnName = {N}",然後將整個實體物件作為參數傳入,將儲存實體物件的SQL語句中的參數替換成相應的值,得到儲存資料的SQL語句,然後調用資料庫命令儲存資料;
  3. 將實體物件執行個體中的每一個資料庫欄位屬性成員的“屬性名稱”和“屬性值”通過反射的方法讀取出來,然後拼接字串,然後調用資料庫命令來儲存資料;
  4. ...(或許還有很多更加高效的資料庫實體類,希望大家踴躍拍磚)。

在這裡,小蝦分別說說每一種方法的優缺點。

                               優點                                                                                  缺點

第一種        1.支援差異資料儲存,即只儲存修改過的資料庫欄位;               1.需要寫非常多的SQL語句。

                2.由於是已經是編輯好的SQL語句,所以效能還可以。

第二種        1.不支援差異資料儲存;                                                  1.一個實體物件至少需要一個SQL語句,工作量也是很客觀的。

                2.執行效率也還可以。

第三種        1.不支援差異資料儲存。                                                  1.同樣是由於反射操作,帶來的效能影響也是比較大的。

                2.由於是通過反射方式來拼接SQL語句,所以省掉了

                   很多寫sql語句的工作量。

如上三種方法都很難達到各位的需求,不知道是否更好的資料庫實體設計方法,還是那句話,歡迎大家大膽拍磚!

 

 

@追加內容

哎,一個個只是支援,頂下什麼的,悲慘啊!

看來還得去baidu,google了。

 

 

 

ASP.NET開發技術交流群: 67511751(人員招募中...)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.