ORM感想(转载)
不可能無視數(shù)據(jù)庫的存在,即使使用了再高明的ORM技巧。
以下數(shù)據(jù)庫特指關系型數(shù)據(jù)庫,對象為面向?qū)ο蟮暮唽憽?br />
原因:
1,?數(shù)據(jù)庫比對象技術更成熟。
??????數(shù)據(jù)庫實現(xiàn)的背后有關系運算的理論基礎,而面向?qū)ο蠹夹g最多只能算實踐中摸索出來的比較有效的手段。
2, 數(shù)據(jù)庫有標準(SQL 9x, 03...第二范式,第三范式...)可參考,對象沒有。
??????不考慮性能的話,幾乎每個DBA做出的選擇都完全一樣;不考慮性能的話,面向?qū)ο蟮娜藶榱税严到y(tǒng)劃成100層還是99.5層爭執(zhí)不休。
3, 對象需要數(shù)據(jù)庫,數(shù)據(jù)庫不需要對象。
??????數(shù)據(jù)庫無關緊要嗎?那你為什么非要把對象拆碎了存到數(shù)據(jù)庫里,不把它們直接放到XML文檔里呢?
4, 數(shù)據(jù)庫的思維是針對集合操作,對象的思維是針對個體操作。
??????也許泛型算法能彌補這個鴻溝,不過那也是C++里STL的事,和對象似乎關系不大。
5, 數(shù)據(jù)庫的功能遠不止存取數(shù)據(jù),對象不能因為無法方便地應用這些功能而讓它們走開,這時候該走開的是對象本身。
??????想一想C# 3.0里為什么會有一個DLinq吧,它很面向?qū)ο竺?#xff1f;
6,?只設計對象,數(shù)據(jù)庫結構自動生成是不負責任的做法。
??????且不提性能,只問你程序重構了,原來的數(shù)據(jù)怎么辦?
7, ORM里最重要的不是R,也不是O,而是M。
??????正因為一時半會兒O和R誰也取代不了誰,所以才需要M。好像Stan Lippman介紹C++/CLI 時說最重要的反而是大家最不容易注意到的:那個斜杠才是整個術語的重點。
8, 理想總是美好的,現(xiàn)實總是殘酷的。
??????性能是每個程序員的最大敵人。
轉載于:https://www.cnblogs.com/zhaolin/archive/2007/05/16/748571.html
總結
- 上一篇: DataSet case sensiti
- 下一篇: ASP.NET AJAX入门系列(9):