其實并不抵觸學習新東西和一些“高大上”的概念,但我一直以來最關心的只有一點:我的項目中能不能用到,這東西有什么用,好處是什么,代價是什么?網上很多都說面向對象的數據庫操作方式可以將Model層直接解耦,不需要關心它是怎么實現的,而且可以使用OOP的方式,如getXXX()來獲取記錄的某個字段值。其實我一直想做一個游記的網站(類似百度旅游/馬蜂窩),目錄結構也在http://segmentfault.com/q/1010000002890348提出了,中途也因為看過很多IoC的文章很是頭疼,發現礙于項目規模很難體現出它的優勢,反而是加重負擔為了設計而設計。分層已經使得action盡量精簡,而且Model也可以做到不錯的復用。1、實在不知道為什么越來越多使用ORM呢?是因為面向對象編程的需要(太籠統了)?還是說我的查詢結果對象可以緩存?如果網站訪問量大了,是不是把查詢結果以對象形式緩存才是最終的解決辦法?基于KV的noSQL是不是也可以替代?那數據庫自身的緩存呢?2、其實解耦真不是最關心的問題(自認為還沒達到要解耦的地步,上面的分層帶來的復用性已經蠻不錯了),ORM的builder看著也是醉了,不如直接Model里寫SQL語句來的痛快,將來換數據庫直接重寫(不擔心這個問題,不差這個時間),感覺性能和復用一直有點點的相悖,那拋開復用性和解耦的需求,如果要用ORM是不是就是因為對象緩存的收益?3、還有之前公司大哥說不要用join,直接嵌套查詢,我說那不是假設文章頁15篇文章上面有作者信息,我就要跑15趟post表,中途再跑15趟user表?他說查詢結果可以緩存,不太明白這個緩存是數據庫級別的還是Model對象級別的?不一一評論了,謝謝大家的回答!
PHP 數據庫 ORM 實現的必要性
胡子哥哥
2019-04-10 20:49:25