CMS模塊內(nèi)容設(shè)計(jì)分為主表和附表 主表:存儲(chǔ)的字段用于列表循環(huán)和搜索 附表:存儲(chǔ)的字段用于內(nèi)容頁顯示(原則上不能出現(xiàn)在列表顯示)
設(shè)計(jì)附表是為了減輕主表的查詢壓力,把一些不常用于列表的字段放在附表中;
如果非要把附表字段用在列表循環(huán)里面,就違背了附表的設(shè)計(jì)理念,這樣想法是不效率的,非要做的話有兩種解決方法
例如news模塊的附表的content字段,我想在列表顯示
方法一、通過PHPmyadmin工具手動(dòng)把content改為主表(需要有數(shù)據(jù)庫基礎(chǔ),沒有技術(shù)基礎(chǔ)請(qǐng)看下面的方法)
操作數(shù)據(jù)庫需要提前備份數(shù)據(jù),以免數(shù)據(jù)丟失不可逆轉(zhuǎn)。 1、進(jìn)入cms自定義字段里面,找到content字段的id號(hào) {xunruicms_img_title} 2、dr_field表,通過content的id編號(hào),找到content字段的數(shù)據(jù) {xunruicms_img_title} 把0改成1 3、進(jìn)入模塊主表的數(shù)據(jù)表 dr_1_xxxx,新建一個(gè)content字段 {xunruicms_img_title} 4、然后進(jìn)入模塊附表數(shù)據(jù) dr_1_xxxx_data_0,將附表的數(shù)據(jù)復(fù)制到主表的content字段中:
UPDATE?`dr_1_xxxx`?a,?`dr_1_xxxx_data_0`?b?SET?b.`content`?=?a.`content`?WHERE?a.id?=?b.id;
如果有多個(gè)附表就執(zhí)行多次后綴_1,_數(shù)字 5、然后再手動(dòng)刪除附表dr_1_xxxx_data_0的content字段,刪掉 6、然后進(jìn)入cms后臺(tái)更新緩存即可
方法二、不禁用本身的content字段,列表循環(huán)標(biāo)簽改一下:
join=1_news_data_0?on=id
例如列表循環(huán)時(shí),加上的效果
{module?catid=$catid?join=1_news_data_0?on=id?order=updatetime?page=1}
這個(gè)寫法僅限于5萬以內(nèi)的數(shù)據(jù) 這個(gè)方法效率遠(yuǎn)遠(yuǎn)沒有方法1高
方法三:在循環(huán)中進(jìn)行二次調(diào)用content標(biāo)簽,這種寫法效率最低,會(huì)影響整個(gè)頁面的查詢速度
{module?module=news?*******?return=r}

{content?module=news?id=$r.id}
標(biāo)題:{$t.title}
內(nèi)容:{$t.content}
{/content}

{/module}
本文地址:https://www.xunruicms.com/doc/678.html

聲明:本站所有文章資源內(nèi)容,如無特殊說明或標(biāo)注,均為采集網(wǎng)絡(luò)資源。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系本站刪除。