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