W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
dzzoffice可以使用數(shù)據(jù)層來(lái)操作數(shù)據(jù)表。
使用數(shù)據(jù)層有以下的優(yōu)點(diǎn):
結(jié)構(gòu)清晰,便于閱讀
對(duì)查詢參數(shù)做了格式化處理,增強(qiáng)了安全性
集中數(shù)據(jù)操作sql語(yǔ)句,便于維護(hù)和更新
實(shí)現(xiàn)緩存操作的相關(guān)函數(shù),解決MYSQL自身對(duì)高并發(fā)處理的性能瓶頸
使用數(shù)據(jù)層需要滿足以下的條件:
有以table_加上不帶前綴的表名的class文件
操作類class_表名的類繼承dzz_table基類
數(shù)據(jù)層的一些規(guī)范和約定:
一個(gè)數(shù)據(jù)表對(duì)應(yīng)一個(gè)class文件,以table_加上不帶前綴的表名命名,盡量不操作其它表;
使用C::t('tablename')->method() 調(diào)用;
不建議使用$_G、$_POST、$_GET等全局變量(可以以參數(shù)形式帶入或者使用getglobal來(lái)獲取全局變量);
關(guān)聯(lián)查詢(JOIN)盡量拆分為單條查詢,不能拆分的放入主表的類中
除數(shù)據(jù)表文件以外,其它文件盡量不要出現(xiàn)SQL語(yǔ)句,便于后續(xù)的數(shù)據(jù)表的維護(hù)和更新
建議方法名:查詢結(jié)果返回一行記錄方法名使用fetch開(kāi)頭,返回多行記錄方法名使用fetch_all開(kāi)頭,查詢中使用SQL語(yǔ)句count函數(shù)返回一個(gè)數(shù)值的使用count開(kāi)頭
數(shù)據(jù)表類繼承dzz_table基類,基類實(shí)現(xiàn)CURD操作,fetch方法實(shí)現(xiàn)了根據(jù)一個(gè)主鍵 值得到一行記錄、fetch_all方法實(shí)現(xiàn)了根據(jù)一組主鍵值得到多行記錄(二維數(shù)據(jù),主鍵值為 key)、count方法返回了表的總記錄數(shù)據(jù)
DB層封裝的函數(shù)實(shí)現(xiàn)了addslashes,個(gè)別直接寫sql語(yǔ)句的需注意addslashes
基類實(shí)現(xiàn)緩存操作的相關(guān)函數(shù),數(shù)據(jù)表類中增加下面的參數(shù)來(lái)啟用數(shù)據(jù)緩存(需要服務(wù)器開(kāi)啟緩存)
//例如: public function __construct() { $this->_table = 'app_open'; $this->_pk = 'extid'; $this->_pre_cache_key = 'app_open_'; //緩存主鍵名前綴,為空時(shí)表示此表不支持緩存 $this->_cache_ttl =0; 緩存時(shí)間,以秒為單位,0表示永久或相關(guān)配置文件中的默認(rèn)值 parent::__construct(); }
注意:開(kāi)啟表緩存后,所有數(shù)據(jù)的更新、插入和刪除都需要更新相關(guān)的緩存(使用基類的更新操作會(huì)自動(dòng)更新緩存)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: