Siirry sisältöön

Muuta malli Salesforceksi

Saatavilla myös 28 kielellä

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Español (México) · Français (Canada) · Deutsch (Schweiz)

A white card model rising from the plan it was drawn on, built from repeated standard window pieces with one curved wooden wall, the rest of the plan still bare.
Kuva on luotu tekoälyllä

Moduuli 6/6 luvussa Tietojen mallintaminen merkityksen kautta, Data Architect -kurssin luku 2. Jokainen moduuli on itsenäinen. Edellinen: Suunnittele kolmanteen normaalimuotoon ja peräänny sitten · Seuraava: luvun opiskeluopas, sitten seuraava luku: Salesforcen tietoarkkitehtuuri

Kysymys, johon tämä moduuli vastaa: Miten loogisesta tietomallista tulee fyysinen Salesforce-tietomalli?

Vihdoin puhumme Salesforcesta. Jos olet vastustanut halua muuttaa jokainen laatikko objektiksi, nyt saat tehdä sen. Mutta huomaa, missä järjestyksessä tulimme: ymmärsimme liiketoiminnan, kuvasimme tiedot, sijoitimme kunkin tiedon sinne, minne se kuuluu, ja päätimme, missä joustamme siitä tarkoituksella. Vasta nyt kysyn, miten Salesforcen pitäisi toteuttaa se. Sen etenemisen haluan sinun muistavan: käsitteellinen → looginen → fyysinen. Käsitteellinen malli kuvaa liiketoimintaa. Looginen malli kuvaa tietoja. Fyysinen malli kuvaa, miten oikeasti rakennamme sen.

Fyysisen vaiheen näkee helpoimmin jostain pienestä, joten lemmikit menevät ensin.

Keitä ovat yritykset ja ihmiset? Kasvattaja on yritys, joten siitä tulee tili (Account), jonka tietuetyyppi on Kasvattaja. Omistaja on myös tili, tai henkilötili, jonka tietuetyyppi on Omistaja. Kaksi saman vakio-objektin lajia rinnakkain kaavion yläosassa, juuri siellä, missä ne ovat olleet moduulista 1 asti.

Millä ei ole vakiokotia? Lemmikistä, rodusta, tempusta, lemmikin tempusta ja tempun arvioinnista tulee mukautettuja objekteja. Ja muistatko lajin, jonka kopioimme lemmikille moduulissa 5? Tässä se saa tehtävänsä: siitä tulee lemmikin tietuetyyppi, koira tai kissa. Yksi objekti kahdella tietuetyypillä, kummallakin oma sivuasettelunsa ja valintaluettelon arvonsa, koiraobjektin ja kissaobjektin sijaan.

Mitkä suhteet ovat master-detail-suhteita? Käytän master-detailia vain silloin, kun alitietuetta ei koskaan siirretä toiselle päätietueelle. Lemmikin temppu kuuluu lemmikilleen koko elämän, ja jokainen tempun arviointi kuuluu lemmikin tempulleen, joten molemmat ovat master-detail-suhteita. Se kannattaa heti: master-detail on se, mikä antaa lemmikin pitää koontikentän (roll-up summary) lemmikin tempuistaan, joten moduulin 5 osatut temput -laskuri pysyy tahdissa itsestään. Lemmikit kuitenkin vaihtavat kotia, joten omistaja on lookup.

Mitkä ovat lookupeja? Salesforce ei suosittele yli 10 000 alitietuetta yhdelle päätietueelle. Suosittu temppu kuten Istu, yleinen rotu tai iso kasvattaja voisi ylittää sen helposti, joten lemmikin temppu osoittaa temppuunsa lookupilla, ja lemmikki osoittaa rotuunsa ja kasvattajaansa samalla tavalla. Ja vältä polymorfisia suhteita aina kun voit, sellaisia, joissa yksi kenttä voi osoittaa useaan objektityyppiin. Ne ovat käteviä ensimmäisenä päivänä ja hankalampia kaikelle, minkä täytyy lukea niitä myöhemmin: raporteille, integraatioille ja nyt agenteille.

Mikä jää alustan ulkopuolelle? Jos lemmikillä on GPS-panta, joka ilmoittaa sen sijainnin, sitä sijaintia ei tarvitse kopioida sisään lainkaan. Se voi olla ulkoinen objekti, joka luetaan suoraan pannan seurantajärjestelmästä.

Lemmikkimalli Salesforcessa Lemmikkimalli Salesforce-objekteina. Ylhäällä kaksi tiliä: toisella Omistaja-tietuetyyppi, toisella Kasvattaja-tietuetyyppi. Niiden alla Pet__c, jolla on tietuetyypit Koira ja Kissa, mikrosirun numero ulkoisena ID:nä, lookupit omistajaan, kasvattajaan ja Breed__c:hen sekä Tricks_Known__c koontikenttänä. Pet_Trick__c on master-detail-suhteessa Pet__c:hen, ja sillä on lookup Trick__c:hen sekä taitotaso ja oppimispäivä. Trick_Assessment__c on master-detail-suhteessa Pet_Trick__c:hen. Breed__c:llä on laji, nimi ja koko; Trick__c:llä nimi ja vaikeus. lookup lookup lookup master detail lookup master detail Tili (Omistaja) Id TIETUEEN ID Tietuetyyppi: Omistaja Nimi Puhelin Tili (Kasvattaja) Id TIETUEEN ID Tietuetyyppi: Kasvattaja Nimi Pet__c Id TIETUEEN ID Tietuetyypit: Koira, Kissa Microchip_Number__c ULKOINEN ID Owner__c LOOKUP Breeder__c LOOKUP Breed__c LOOKUP Nimi Birth_Date__c Tricks_Known__c KOOSTE Breed__c Id TIETUEEN ID Species__c Nimi Size__c Pet_Trick__c Id TIETUEEN ID Pet__c MASTER-DETAIL Trick__c LOOKUP Skill_Level__c Date_Learned__c Trick__c Id TIETUEEN ID Nimi Difficulty__c Trick_Assessment__c Id TIETUEEN ID Pet_Trick__c MASTER-DETAIL Date__c Skill_Level__c Assessed_By__c täsmälleen yksi nolla tai yksi yksi tai monta nolla tai monta © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Jokainen kaavion päätös palautuu johonkin, mitä päätimme aiemmin, ja juuri se on tarkoitus. Nyt sama vaihe Steve Truckingille.

Steve Truckingin loogisessa mallissa on nyt vähittäiskauppakumppani, jakelukeskus, kuormaluettelo, toimitus, toimitusrivi, vastaanottaja, reitti, pysähdys, tiimi, kuorma-auto ja tiimin osoitus. Ne ovat liiketoimintakäsitteitä, ja nyt voin alkaa kohdistaa niitä Salesforceen.

Vähittäiskauppakumppani voisi olla tili. Toimitus voisi vastata jotain, mitä Salesforcessa jo on aikataulutettua kenttätyötä varten, tai siitä voisi tulla mukautettu objekti. Kuormaluettelolle ei ole sopivaa vakio-objektia, joten siitä tulee todennäköisesti mukautettu. Ja vastaanottaja on aidosti vaikea kysymys: henkilötili, yhteyshenkilö vai pelkkiä tietoja toimituksessa? Vastaamme siihen kunnolla seuraavassa luvussa.

Tärkeä sana on yhä voisi. Älä oleta toteutusta vain siksi, että liiketoimintakäsite kuulostaa Salesforce-objektilta. Siksi rakensimme ensin loogisen mallin: se antaa meille jotain, mitä vasten Salesforce-suunnitelmaa voi testata.

Liiketoimintaentiteetti ei automaattisesti tarkoita mukautettua objektia

Osio nimeltä “Liiketoimintaentiteetti ei automaattisesti tarkoita mukautettua objektia ”

Tässä on ansa, jota haluan ylläpitäjien välttävän: ”Tunnistimme yksitoista entiteettiä, joten tarvitsemme yksitoista mukautettua objektia.” Ei. Looginen entiteetti kertoo meille, että liiketoimintakäsitteellä on merkitystä. Se ei sanele, miten Salesforcen täytyy tallentaa se. Käsitteestä voi tulla vakio-objekti, mukautettu objekti, objektien välinen suhde, kenttä tai muutama kenttä, konfiguraatiossa hallittu arvo tai tietoa, joka asuu kokonaan Salesforcen ulkopuolella (Steve Truckingin toimituskuvat ovat hyvä ehdokas siihen). Fyysinen malli on se paikka, jossa nuo valinnat tehdään, ja juuri siksi emme tehneet niitä ensimmäisessä puhelussa.

Attribuuteista tulee fyysisiä kenttiä

Osio nimeltä “Attribuuteista tulee fyysisiä kenttiä ”

Sama siirtymä tapahtuu attribuuteille. Loogisella kuorma-autollamme on yksikkönumero, VIN-tunnus, merkki, malli, vuosimalli, rekisterikilpi ja tila. Nyt päätämme, miten ne ovat fyysisesti olemassa: mikä objekti omistaa ne, mitä kenttätyyppejä ne käyttävät, mitkä ovat pakollisia, minkä täytyy olla yksilöllisiä, mitkä ovat ulkoisia tunnisteita, mitkä tarvitsevat vahvistuksen, mitkä johdetaan tallentamisen sijaan ja mitkä ovat arkaluonteisia. Loogisella tasolla kysyimme, mitä kuorma-auto tarkoittaa. Fyysisellä tasolla kysymme, miten Salesforce esittää kuorma-auton. Eri kysymykset.

Kuorma-auto: loogisesta entiteetistä Salesforce-objektiksi Kaksi korttia rivi riviltä. Looginen, Kuorma-auto, mitä Kuorma-auto tarkoittaa: kuorma-auton ID, yksikkönumero, VIN, merkki, malli, vuosimalli, rekisterinumero, tila. Fyysinen, Truck__c, miten Salesforce esittää sen: Id, Salesforcen tietueen ID; Name, teksti, jossa on yksikkönumero; VIN__c, 17 merkin teksti, yksilöllinen ja ulkoinen ID; Make__c, valintaluettelo; Model__c, 40 merkin teksti; Model_Year__c, nelinumeroinen luku; License_Plate__c, 10 merkin teksti; Status__c, valintaluettelo, pakollinen. Huomautus alla: looginen kysyy, mitä Kuorma-auto tarkoittaa; fyysinen kysyy, miten Salesforce esittää sen. Looginen: Kuorma-auto mitä Kuorma-auto tarkoittaa Kuorma-auton ID Yksikkönumero VIN Merkki Malli Vuosimalli Rekisterinumero Tila Fyysinen: Truck__c miten Salesforce esittää sen Id: Salesforcen tietueen ID Name: teksti, yksikkönumero VIN__c: teksti(17), yksilöllinen, ulkoinen ID Make__c: valintaluettelo Model__c: teksti(40) Model_Year__c: numero(4) License_Plate__c: teksti(10) Status__c: valintaluettelo, pakollinen Looginen kysyy, mitä Kuorma-auto tarkoittaa. Fyysinen kysyy, miten Salesforce esittää sen. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Kaikki suhteisiin käyttämämme aika kannattaa tässä. Tiedämme jo, onko kukin niistä yhden suhde yhteen, yhden suhde moneen vai monen suhde moneen, pakollinen vai valinnainen, ja onko sen historialla merkitystä. Nyt päätämme, miten Salesforce sen toteuttaa: lookup, master-detail tai Salesforcen liitosobjekti (Salesforce Junction Object), ja ehkä liitos, jolla on omia attribuutteja, koska kuten huomasimme, suhteella itsellään voi olla liiketoiminnallinen merkitys.

Muistele tiimin osoitusta. Olisimme voineet aloittaa tämän luvun sanomalla: ”Luodaan Salesforcen liitosobjekti tiimin ja kuorma-auton väliin.” Katso, minkä olisimme ohittaneet: miksi suhde on olemassa, tarvitseeko se päivämäärän ja reitin, onko sillä tila ja tarvitseeko viikkoja myöhemmin tehty vahinkoilmoitus sen historiaa. Nuo liiketoimintakysymykset kertovat meille, mikä tiimin osoitus on. Vasta sitten meidän pitäisi päättää, miten Salesforce sen rakentaa, ja onko Salesforcessa jo jotain, mikä hoitaa tehtävän.

Kaavio muuttuu taas. Käsitteellinen malli näytti liiketoimintakäsitteet ja yksinkertaiset viivat. Looginen malli lisäsi attribuutit, avaimet, kardinaliteetin ja suhteisiin piiloutuneet entiteetit. Nyt fyysinen malli alkaa näyttää Salesforcelta: vakio-objektit, mukautetut objektit, kentät, suhdetyypit ja se, mikä asuu alustan ulkopuolella.

Sama liiketoiminta kolmella tasolla Kolme paneelia, sama osa kolmella tasolla. Käsitteellinen, mitä on olemassa: vähittäiskauppakumppani, jälleenmyyjä, jolle toimitamme, lähettää toimituksia, ja jokainen toimitus, yksi tilaus yhdelle vastaanottajalle, sisältää toimitusrivejä, tuotteen toimituksessa. Looginen, miten tiedot on jäsennetty: samat kolme tietueen ID:ineen ja muutamine kenttineen; toimitus tunnetaan myös kumppanin tilausnumerolla; toimitusrivi kantaa tuotteen ID:n ja määrän. Fyysinen, miten Salesforce rakentaa sen: vähittäiskauppakumppani on vakio-objekti Tili (Account) Vähittäiskauppakumppani-tietuetyypillä; toimitus on mukautettu objekti Delivery__c, jossa kumppanin tilausnumero on ulkoinen ID ja lookup tiliin; toimitusrivi on mukautettu objekti Delivery_Item__c master-detail-suhteessa toimitukseensa, ja siinä on määrä. Huomautus alla: liiketoiminta, käsitteellinen, looginen, fyysinen; osoita mitä tahansa oikealla ja jäljitä se takaisin vasemmalle. KÄSITTEELLINEN: MITÄ ON OLEMASSA? LOOGINEN: MITEN TIEDOT ON JÄSENNETTY? FYYSINEN: MITEN SALESFORCE RAKENTAA SEN? lähettää sisältää lähettää sisältää lookup master detail Vähittäiskauppakumppani jälleenmyyjä, jolle toimitamme Toimitus yksi tilaus yhdelle vastaanottajalle Toimitusrivi tuote toimituksessa Vähittäiskauppakumppani Vähittäiskauppakumppanin ID TIETUEEN ID Nimi Tila Toimitus Toimitus-ID TIETUEEN ID Kumppanin tilausnumero TUNNETAAN MYÖS Toimituspäivä Tila Toimitusrivi Toimitusrivin ID TIETUEEN ID Tuotteen ID Määrä Tili (vakio) Id TIETUEEN ID Tietuetyyppi: Vähittäiskauppakumppani Nimi Delivery__c Id TIETUEEN ID Partner_Order_Number__c ULKOINEN ID Retail_Partner__c LOOKUP Delivery_Item__c Id TIETUEEN ID Delivery__c MASTER-DETAIL Quantity__c Liiketoiminta → käsitteellinen → looginen → fyysinen: osoita mitä tahansa oikealla ja jäljitä se takaisin vasemmalle. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Haluan, että pystyt laittamaan nuo kolme kaaviota rinnakkain ja näkemään etenemisen: et kolmea toisiinsa liittymätöntä kaaviota, vaan saman liiketoiminnan kolmella tasolla.

Sananen siitä, miten piirrän nämä, koska asettelu on osa viestiä. Laitan pääobjektin keskelle, hieman alas. Jos sillä on päätietueobjekteja, laitan ne hieman yläpuolelle, jotta mallia luetaan ylhäältä alas ja vasemmalta oikealle, samalla tavalla kuin liiketoiminta sitä ajattelee. Viitetiedot menevät sivuun. Väreilläkin on merkitys: teen Salesforcesta aina sinisen, ja valitsen värin yrityksen omille järjestelmille, yleensä vihreän, koska vihreä on mukava ja ystävällinen väri. En käytä punaista, ja keltaiset ovat vähän räikeitä. Kun malli on aseteltu noin, se laulaa minulle. Monet kaaviot, joita löydät, ovat oikeastaan tilanhallintaa: miten saan kaikki autoni pysäköityä ahtaaseen autotalliini? Maalaan mieluummin loogisen kuvan, jonka mieli pystyy hahmottamaan.

Fyysisen mallin täytyy kunnioittaa alustaa

Osio nimeltä “Fyysisen mallin täytyy kunnioittaa alustaa ”

Salesforce ei ole geneerinen relaatiotietokanta. Sillä on mielipiteitä suhteista, omistajuudesta, suojauksesta ja raportoinnista. Sillä on rajoja, kyselykäyttäytymistä ja automaatiota sekä arkkitehtuuri, joka vaikuttaa siihen, miten malli käyttäytyy suuressa mittakaavassa. Valkotaululla täydelliseltä näyttävän loogisen mallin voi siis joutua muuttamaan, kun siitä tulee fyysinen. Se ei ole Salesforcen hankaluutta. Se tarkoittaa, että alustalla on muoto, ja hyvät arkkitehdit ymmärtävät sen muodon. Seuraava luku käsittelee juuri sitä.

Joskus fyysinen malli myös poikkeaa tarkoituksella puhtaasta loogisesta mallista moduulissa 5 tekemiemme denormalisointipäätösten vuoksi. Se on ihan hyvä, kunhan osaamme selittää miksi.

On tapa, jonka haluan sinun lopettavan, jos sinulla on se: tietoarkkitehtuurin aloittaminen kohdasta Setup → Object Manager → New Custom Object ja mallin keksiminen siinä samalla. Salesforce tekee asioiden luomisesta uskomattoman helppoa; se on yksi sen vahvuuksista ja yksi syistä, miksi heikot tietomallit syntyvät niin nopeasti. Muutama klikkaus, ja sinulla on objekti, muutama lisää, ja sinulla on kentät ja suhde. Sitten tietoa saapuu, flow’ita rakennetaan, raportteja luodaan, integraatiot riippuvat siitä, ja viidessä minuutissa luomasi objektin muuttaminen on hyvin kallista. Se on luvun 1 peruttavuustesti. Joten ennen kuin klikkaat New Custom Object, piirrä malli.

On toinenkin syy, miksi pidän kolme mallia erillään: teknologia muuttuu. Tänään osa Steve Truckingin tiedoista asuu Salesforce-coressa. Huomenna osa niistä voi asua Data 360:ssa, tietovarastossa tai järjestelmässä, jota emme ole vielä valinneet, ja tekoälyavustaja tarvitsee oman esityksensä. Fyysinen arkkitehtuuri voi muuttua, kun taas liiketoimintakäsitteet pysyvät huomattavan vakaina: vähittäiskauppakumppanit, toimitukset ja vastaanottajat ovat yhä olemassa. Se tekee loogisesta mallista arvokkaan. Se on kestävä kuvaus liiketoiminnasta, joka ei ole sidottu tämänpäiväiseen toteutukseen.

Kun muutan loogisen mallin fyysiseksi Salesforce-malliksi, päätän:

  • Mitkä liiketoimintaentiteetit vastaavat Salesforcen vakio-ominaisuuksia ja mitkä tarvitsevat mukautettuja objekteja tai muun esitystavan.
  • Miten loogisista attribuuteista tulee fyysisiä kenttiä ja miten suhteet toteutetaan alustalla.
  • Mihin tarkoituksellinen denormalisointi kuuluu fyysisessä suunnitelmassa.
  • Mitkä tiedot kuuluvat Salesforceen ja mitkä jonnekin muualle.
  • Mitkä alustan ominaisuudet vaativat fyysistä mallia poikkeamaan loogisesta.

Tärkeintä on, että haluan pystyä jäljittämään jokaisen päätöksen taaksepäin. Jos osoitat jotain fyysisessä mallissani ja kysyt ”Miksi tuo on tuossa?”, minun pitäisi pystyä viemään sinut loogisen ja käsitteellisen mallin kautta takaisin johonkin, mitä liiketoiminta oikeasti tarvitsee: liiketoiminta → käsitteellinen → looginen → fyysinen.

Kokeen jälkeen: mitä tekoäly muuttaa. Tekoäly voi nyt viedä vaatimusdokumentin yhdellä hypyllä aina Salesforce-objekteihin ja -kenttiin asti. Se tekee järjestyksestä tärkeämmän, ei vähemmän tärkeää: jos se hyppää vaatimuksista suoraan konfiguraatioon, pyydä sitä näyttämään, mitä välissä tapahtui: minkä se päätti olevan entiteetti, mitkä avaimet se valitsi, mitä suhteita se oletti ja missä se denormalisoi. Ne ovat arkkitehtuuripäätöksiä, ja arkkitehdin täytyy yhä nähdä ne.

Aloitimme tämän luvun ensimmäisestä puhelusta substantiiveja kuunnellen, ja päätämme sen fyysiseen malliin, jonka voimme jäljittää takaisin liiketoimintaan. Nyt kun olemme päättäneet rakentaa Salesforcen päälle, seuraava kysymys menee syvemmälle: millaisen tietoalustan päälle oikeastaan rakennamme?