亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 數據庫 ORM 實現的必要性

PHP 數據庫 ORM 實現的必要性

胡子哥哥 2019-04-10 20:49:25
其實并不抵觸學習新東西和一些“高大上”的概念,但我一直以來最關心的只有一點:我的項目中能不能用到,這東西有什么用,好處是什么,代價是什么?網上很多都說面向對象的數據庫操作方式可以將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對象級別的?不一一評論了,謝謝大家的回答!
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

如果你有10個甚至5個小伙伴一起寫SQL,今天這個人JOIN了3個表明天那個人寫了子查詢,后天另一個人批量updatewhere條件拼錯,然后平均每天都有3次因為字段名字寫錯導致的bug,你就知道ORM的寶貴了
                            
查看完整回答
反對 回復 2019-04-10
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

Don'tfallinthetrapofprematureoptimalization
找到瓶頸制約。才是關鍵。不要糾結于某一部分的效率。
                            
查看完整回答
反對 回復 2019-04-10
  • 2 回答
  • 0 關注
  • 404 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號