鍍金池/ 問答/HTML5  PHP  數(shù)據(jù)庫/ php中 或者框架中 ORM在 mvc 中具體扮演的角色是什么

php中 或者框架中 ORM在 mvc 中具體扮演的角色是什么

問題:想知道ORM在MODEl中具體扮演的角色是什么,

1. ORM在 涉及到大的查詢,如關(guān)聯(lián)查詢,到底應(yīng)該怎么去使用,在TP框架中,我之前是通過MODEL繼承,擴(kuò)展了一個(gè)MODEL主表的一個(gè)MODEL,然后在上面處理一些有關(guān)業(yè)務(wù),但是在使用symfony的時(shí)候,ORM中需要針對(duì)每張表有相應(yīng)的映射關(guān)系,每個(gè)屬性也需要映射,然后插入和查詢都是根據(jù)屬性來查找,如果涉及到復(fù)雜的查詢又一個(gè)reposibility(倉庫)好像是,用來處理比較復(fù)雜的sql邏輯的,但是好想我記得每個(gè)倉庫又都是和相應(yīng)的model又一個(gè)一一對(duì)應(yīng)的關(guān)系,比如涉及到多表聯(lián)查或者處理的時(shí)候,或者一大段業(yè)務(wù)需要使用事務(wù)的時(shí)候怎么去去處理
2. 還有就是ORM,在MVC中的具體角色跟sql業(yè)務(wù)操作有何具體的不同,他們之間的關(guān)系是什么
3. 平時(shí)聽朋友將,很多公司都有DBA,這些DBA處理和優(yōu)化的地方跟ORM和框架之間的關(guān)系是什么
回答
編輯回答
青黛色

可以把它簡單理解為操作數(shù)據(jù)庫的工具,把數(shù)據(jù)庫查詢操作的邏輯,映射為函數(shù)方法。
例如SQL的where 映射為where()函數(shù)。

我昨天開源了的composer組件 https://github.com/AxiosCros/...
用它的Db類可以進(jìn)行數(shù)據(jù)庫的連接、查詢等操作。

DBA的作用是設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu),管理維護(hù)因?yàn)闃I(yè)務(wù)變化而帶來的數(shù)據(jù)結(jié)構(gòu)變化,
同時(shí)更重要的任務(wù)是保證數(shù)據(jù)庫運(yùn)行的穩(wěn)定安全。

而ORM的作用,是讓編程語言以更友好的方式與數(shù)據(jù)庫進(jìn)行“溝通”。通過封裝的方法,讓開發(fā)者輕易的實(shí)現(xiàn)數(shù)據(jù)庫的查詢,而不需要直接寫SQL語句。

2018年9月8日 03:29