下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
salesforce零根底開(kāi)發(fā)入門(mén)學(xué)習(xí)〔四〕多表關(guān)聯(lián)下的SOQL以及表字段Datatype詳解建立好的數(shù)據(jù)表在數(shù)據(jù)庫(kù)中查看有很多方式,本人目前采用以下兩種方式查看數(shù)據(jù)表。1.采用schemaBuilder查看表結(jié)構(gòu)以及多表之間的關(guān)聯(lián)關(guān)系,可以登錄后點(diǎn)擊setup在左側(cè)搜索框輸入schemaBuilder或者build-->schemaBuilder進(jìn)入;2.采用forceExplorer通過(guò)自己寫(xiě)查詢(xún)語(yǔ)句來(lái)查詢(xún)數(shù)據(jù)。此鏈接為forceExplorer的下載鏈接:下載完成后通過(guò)用戶(hù),密碼,Securitytoken賬號(hào)登陸即可,見(jiàn)〔篇一〕。此篇主要講解表字段的Datatype的每種類(lèi)型以及多表關(guān)聯(lián)下的SOQL查詢(xún),由于多表關(guān)聯(lián)涉及到Datatype中的lookup或者master-detail,所以先講一下Datatype類(lèi)型。一〕Datatype當(dāng)數(shù)據(jù)表創(chuàng)立表的列時(shí),會(huì)選擇DataType,不同的DataType在頁(yè)面處理以及數(shù)據(jù)插入時(shí)會(huì)有不同的處理。而且不同的字段會(huì)有其相對(duì)應(yīng)的數(shù)據(jù)類(lèi)型與之對(duì)應(yīng)。1.AutoNumber:系統(tǒng)生成的序列號(hào),通過(guò)自身定義的形式顯示,為每條新紀(jì)錄自動(dòng)遞增數(shù);2Formula:聲明一個(gè)計(jì)算式,功能很強(qiáng)大,以后會(huì)單獨(dú)篇章講解formula用法;3.LookupRelationship:創(chuàng)立鏈接一個(gè)對(duì)象和另一個(gè)對(duì)象的關(guān)系,創(chuàng)立關(guān)系后,通過(guò)一個(gè)對(duì)象可以訪問(wèn)另一個(gè)對(duì)象的內(nèi)容信息;4.Master-DetailRelationship:創(chuàng)立一個(gè)特殊的父子關(guān)系〔主從關(guān)系〕,和lookupRelationship的相同與差異在下面介紹;5.ExternalLookupRelationship:創(chuàng)立一個(gè)對(duì)象和另一個(gè)額外對(duì)象的關(guān)系。其中這個(gè)對(duì)象的數(shù)據(jù)存儲(chǔ)在額外對(duì)象的數(shù)據(jù)源中;6.Checkbox:聲明一個(gè)布爾類(lèi)型;7.Currency:聲明一個(gè)貨幣類(lèi)型;8.Date:聲明一個(gè)Date類(lèi)型,用戶(hù)在前臺(tái)綁定后可以直接使用Date類(lèi)型相應(yīng)的控件;9.Date/Time:聲明一個(gè)Date和Time類(lèi)型,用戶(hù)選擇日期后,日期和當(dāng)前時(shí)間便賦值到輸入域;10.Email:聲明一個(gè)Email類(lèi)型;11.Geolocation:聲明一個(gè)位置的類(lèi)型,此類(lèi)型包含經(jīng)緯度信息;12.Number:允許輸入任何的數(shù)字,如果輸入的全是0那么全部移除;13.Percent:聲明一個(gè)百分比類(lèi)型;14.Phone:聲明一個(gè)號(hào)碼類(lèi)型,輸入的內(nèi)容自動(dòng)轉(zhuǎn)換成此類(lèi)型;15.Picklist:聲明一個(gè)列表類(lèi)型,類(lèi)似于HTML中的<select><option></option></select>關(guān)系,下面會(huì)有例子講解;16.Picklist〔Multi-Select〕:聲明一個(gè)列表類(lèi)型,區(qū)別上面的為允許多項(xiàng)選擇;17.Text:聲明一個(gè)字符串類(lèi)型,最大長(zhǎng)度為255;18.TextArea:和Text類(lèi)型相似,區(qū)別為內(nèi)容可以換行;19.TextArea(Long):和TextArea相似,最大長(zhǎng)度為131072;20.TextArea(Rich):富輸入框,可以存儲(chǔ)圖片等;21.Text(Encrypted):可以加密的形式存儲(chǔ);22.URL:聲明一個(gè)URL類(lèi)型。在工程中有一些是我們需要經(jīng)常用到的類(lèi)型,比方2,3,4,6,7,8,9,10,12,15,16,17,19,20,22.有一些類(lèi)型配置相對(duì)簡(jiǎn)單,選中Datatype類(lèi)型,輸入字段名稱(chēng)然后一直執(zhí)行下一步便可以完成操作;有一些類(lèi)型配置那么相對(duì)麻煩。接下來(lái)主要描述LookupRelationship,Master-detailRelationship,Picklist這三種類(lèi)型配置。1〕PickListPickList聲明一組數(shù)據(jù),類(lèi)似HTML中的選擇框。通常用于確定的內(nèi)容選擇,比方學(xué)生表可以聲明學(xué)生的學(xué)歷--Education__c字段。他的值為確定范圍的:幼稚園,小學(xué),初中,高中,大學(xué)。。。所以這個(gè)字段可以聲明為PickList類(lèi)型字段。即此字段適用于值是確定范圍的,有窮的情況。聲明PickList操作步驟如下:1.如果存在Student表情況下,在setup-->create-->Objects下找到Student,點(diǎn)擊進(jìn)入。如果不存在Student,那么按照上一篇步驟新建Student表;2.在CustomFields&Relationships模塊下點(diǎn)擊add新建一個(gè)字段并選擇PickList點(diǎn)擊Next;3.在FieldLabel中輸入Education,鼠標(biāo)移動(dòng)到FieldName中那么自動(dòng)輸入。將Value選擇第二個(gè)EnterValue,并在輸入框中輸入相應(yīng)值,如圖1所示;4.一直選擇Next,最后點(diǎn)擊Save按鈕新增PickList類(lèi)型字段。圖12〕LookupRelationship與Master-detailRelationship二者均可以關(guān)聯(lián)兩個(gè)數(shù)據(jù)表,實(shí)現(xiàn)其他數(shù)據(jù)庫(kù)語(yǔ)言類(lèi)似join功能,二者區(qū)別如下:1.masterdetail關(guān)系比擬緊密,可以自動(dòng)進(jìn)行級(jí)聯(lián)刪除,Lookup關(guān)系相對(duì)靈活,不可以級(jí)聯(lián)刪除,如果刪除操作,那么需要先刪除從表,再刪除主表操作;2.用lookup允許父為空,master不允許--master模式需要級(jí)聯(lián)刪除,如果master情況父為空那么無(wú)法級(jí)聯(lián)刪除。具體使用那種分?jǐn)?shù)據(jù)表關(guān)系,如果數(shù)據(jù)表關(guān)聯(lián)比擬緊密,刪除時(shí)需要級(jí)聯(lián)刪除那么可以選擇master-detail模式,如果關(guān)系相對(duì)松散,希望表之間靈活控制,那么推薦使用lookup關(guān)系。以權(quán)限表和角色表兩個(gè)表關(guān)系來(lái)引入Lookup.做過(guò)權(quán)限管理的人都知道,一個(gè)權(quán)限可以對(duì)應(yīng)多個(gè)角色,一個(gè)角色可以分配多種權(quán)限,權(quán)限與角色是多對(duì)多關(guān)系。比方,查看文章的權(quán)限可以是管理員具有查看權(quán)利,也可以是普通用戶(hù)具有查看的權(quán)利;一個(gè)管理員可以有查看的權(quán)限,也可以有修改的權(quán)限。所以應(yīng)該引入一個(gè)中間表角色權(quán)限表作為中間表,實(shí)現(xiàn)以上的數(shù)據(jù)表結(jié)構(gòu)構(gòu)造,如圖2所示。圖2通過(guò)圖2可以看出,PRIVELEGEROLE__c外鍵依賴(lài)于PRIVELEGE__c以及ROLE__c,即PRIVELEGEROLE__c的PRIVELEGEID__c字段與PRIVELEGE__c的Id字段進(jìn)行關(guān)聯(lián),PRIVELEGEROLE__c的ROLEID__c的Id字段進(jìn)行關(guān)聯(lián),通過(guò)這兩個(gè)關(guān)聯(lián)字段可以訪問(wèn)到這兩個(gè)關(guān)聯(lián)的表中。訪問(wèn)方式比擬特殊,即通過(guò)PRIVELEGEID__r可以訪問(wèn)到PRIVELEGE表〔對(duì)應(yīng)的sObject為PRIVELEGE__c〕中的字段,通過(guò)ROLEID__r可以訪問(wèn)到ROLE表(對(duì)應(yīng)的sObject為ROLE__c)中的字段。注意:這三個(gè)表如果按照Master-Detail關(guān)系情況,那么PRIVELEGE__c和ROLE__c為主表,PRIVELEGEROLE__c為從表〔外鍵依賴(lài)于另外兩個(gè)表〕。通過(guò)外鍵依賴(lài)的sObject,將sObject最后的c改成r便可以訪問(wèn)此表。eg:SELECT
PRIVELEGEID__r.Id,PRIVELEGEID__r.PRIVELEGENAME__c,
ROLEID__r.ROLENAME__c,IdFROM
PRIVELEGEROLE__c通過(guò)上面例子可以看出:PRIVELEGEROLE__c表中的PRIVELEGEID__c是表中的一個(gè)字段,通過(guò)LookUp關(guān)系關(guān)聯(lián)到PRIVELEGE__c,那么PRIVELEGEID__r那么相當(dāng)于PRIVELEGE__c表的一個(gè)引用,通過(guò)PRIVELEGEID__r那么可以訪問(wèn)PRIVELEGE__c表中的數(shù)據(jù),為了更加明確的了解,將數(shù)據(jù)表查詢(xún)結(jié)果通過(guò)JSON形式顯示,便會(huì)更加的一目了然。通過(guò)查詢(xún)輸出的json結(jié)果可以看出,PRIVELEGEID__r他的類(lèi)型為PRIVELEGE__c,并且把此條記錄中的PRIVELEGE__c需要的字段信息查出,ROLEID__r類(lèi)型為ROLE__c,并且將此條記錄中ROLE__c表需要的字段信息查出。推薦下方的網(wǎng)頁(yè)查看json,它可以將輸出的混亂的json格式變得整潔,增強(qiáng)可讀性。json在線轉(zhuǎn)換網(wǎng)頁(yè):查詢(xún)結(jié)果轉(zhuǎn)成JSON語(yǔ)句:1234567StringqueryString='SELECT
PRIVELEGEID__r.Id,PRIVELEGEID__r.PRIVELEGENAME__c,
ROLEID__r.ROLENAME__c,ROLEID__c,Id
FROMPRIVELEGEROLE__c';List<PRIVELEGEROLE__c>prs=Database.query(queryString);StringqueryJson=JSON.serialize(prs);System.debug(queryJson);以下為查詢(xún)的輸出json結(jié)果。1[2{3"attributes":{4"type":"PRIVELEGEROLE__c",5"url":"/services/data/v36.0/sobjects/PRIVELEGEROLE__c/a03280000089RbkAAE"6},7"PRIVELEGEID__c":"a012800000KufW5AAJ",8"ROLEID__c":"a0228000008fwJ6AAI",9"Id":"a03280000089RbkAAE",10"PRIVELEGEID__r":{11"attributes":{12"type":"PRIVELEGE__c",13"url":"/services/data/v36.0/sobjects/PRIVELEGE__c/a012800000KufW5AAJ"14},15"Id":"a012800000KufW5AAJ",16"PRIVELEGENAME__c":"權(quán)限添加"17},18"ROLEID__r":{19"attributes":{20"type":"ROLE__c",21"url":"/services/data/v36.0/sobjects/ROLE__c/a0228000008fwJ6AAI"22},23"Id":"a0228000008fwJ6AAI",24"ROLENAME__c":"角色添加"25}26}27]接下來(lái)講解如何在網(wǎng)站中構(gòu)建出LookUp關(guān)系,如果不懂如何創(chuàng)立表和字段,請(qǐng)查看上一篇內(nèi)容。1.創(chuàng)立PRIVELEGE表,按照?qǐng)D二的表結(jié)構(gòu)可以看出,需要?jiǎng)?chuàng)立PRIVELEGENAME和PRIVELEGEDESCRIBE兩個(gè)字段,創(chuàng)立后,系統(tǒng)會(huì)自動(dòng)為其創(chuàng)立APIName;2.創(chuàng)立ROLE表,按照?qǐng)D二的表結(jié)構(gòu)可以看出,需要?jiǎng)?chuàng)立ROLENAME和ROLEDESCRIBE兩個(gè)字段,創(chuàng)立后,系統(tǒng)會(huì)自動(dòng)為其創(chuàng)立APINAME;3.創(chuàng)立PRIVELEGEROLE表;4.創(chuàng)立和PRIVELEGE表的依賴(lài),新增一個(gè)字段,Datatype選擇LookUp,點(diǎn)擊Next,如圖3;5.在RelateTo下拉框處選擇需要關(guān)聯(lián)的表,此處選擇PRIVELEGE表,如圖4,然后點(diǎn)擊Next;6.在FieldLabel輸入字段名稱(chēng),此處輸入PRIVELEGEID,鼠標(biāo)移動(dòng)到FieldName,那么自動(dòng)賦值,如圖5,一直點(diǎn)擊next;7.點(diǎn)擊save&new按鈕,重復(fù)4--6步驟,將于ROLE表關(guān)聯(lián)的字段創(chuàng)立,F(xiàn)ieldLabel處輸入ROLEID,最后save,關(guān)聯(lián)結(jié)束,如圖6.圖3圖4圖5圖6使用Master-Detail關(guān)系和使用LookUp關(guān)系創(chuàng)立根本相同,這里不在做說(shuō)明。接下來(lái)說(shuō)明DML操作?,F(xiàn)在說(shuō)一下增刪查操作,改操作和其他相同,那么不再講述。上述代碼查詢(xún)出來(lái)的內(nèi)容為PRIVELEGEROLE__c對(duì)象,那么如何檢索出需要的PRIVELEGE__c對(duì)象的字段或者ROLE__c對(duì)象的字段呢?apex提供簡(jiǎn)單的方式來(lái)處理,即如果各層級(jí)嵌套,那么可以通過(guò)類(lèi)似方式來(lái)獲取需要的內(nèi)容。查詢(xún)操作代碼將與刪除操作代碼在下方一起顯示。因?yàn)楸碇g存在關(guān)聯(lián)關(guān)系,所以進(jìn)行增加操作時(shí),應(yīng)先處理主表,然后再處理從表;進(jìn)行刪除操作時(shí),應(yīng)先刪除從表,在刪除主表。這里在啰嗦一下:主表表示獨(dú)立的表,從表表示外鍵依賴(lài)于其他表的表。主表有時(shí)也被成為父表,子表有時(shí)也被成為子表,上述的例子中,PRIVELEGEROLE為從表,其他為主表增加操作代碼舉例:PRIVELEGE__cprivelege=newPRIVELEGE__c(PRIVELEGENAME__c='權(quán)限添加',PRIVELEGEDESCRIBE__c='權(quán)限描述');ROLE__crole=newROLE__c(ROLENAME__c='角色添加',ROLEDESCRIBE__c='角色描述');insertprivelege;//執(zhí)行insert后,privelege的ID字段便會(huì)自動(dòng)被賦值,且唯一insertrole;IDroleId=[selectIdfromROLE__climit1][0].ID;IDprivelegeId=[selectIdfromPRIVELEGE__climit1][0].ID;PRIVELEGEROLE__cprivelegeRole=newPRIVELEGEROLE__c();privelegeRole.ROLEID__c=roleId;privelegeRole.PRIVELEGEID__c=privelegeId;insertprivelegeRole;
//添加操作需要先添加主表,主表添加以后,ID便自動(dòng)賦值,然后再取出ID操作從表。刪除操作代碼舉例:1StringdeletePrivelegeRoleSql='SELECTROLEID__c,2Id,PRIVELEGEID__r.ID,ROLEID__r.ID'+3'FROMPRIVELEGEROLE__c';4Li
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 分會(huì)考核制度
- 方正考核制度
- 廚務(wù)部考核制度
- 操機(jī)工考核制度
- 公開(kāi)課考核制度
- 站點(diǎn)考核制度
- 思品考核制度
- 文案崗位考核制度
- 社團(tuán)課考核制度
- 天界考核制度
- 給醫(yī)生感謝信又短又好(5篇)
- 濕疹 (中醫(yī)院皮膚科)
- 實(shí)驗(yàn)室儀器設(shè)備驗(yàn)收單
- 智能照明系統(tǒng)調(diào)試記錄
- 關(guān)于若干歷史問(wèn)題的決議(1945年)
- 畢業(yè)論文8000字【6篇】
- 隨訪管理系統(tǒng)功能參數(shù)
- 探究應(yīng)用新思維七年級(jí)數(shù)學(xué)練習(xí)題目初一
- 污水管網(wǎng)竣工驗(yàn)收?qǐng)?bào)告
- GB/T 5039-2022杉原條
- SH/T 0362-1996抗氨汽輪機(jī)油
評(píng)論
0/150
提交評(píng)論