Forstå relasjoner
Hvis du vil lage en effektiv og skalerbar løsning for de fleste løsningene du bygger, må du dele opp data i forskjellige beholdere (tabeller). Å prøve å lagre alt i én enkelt beholder vil sannsynligvis være ineffektivt og vanskelig å arbeide med og forstå.
Følgende eksempel bidrar til å illustrere dette konseptet.
Imagine du må opprette et system for å administrere salgsordrer. Du trenger en produktliste sammen med lagerbeholdningen, kostnaden for varen og salgsprisen. Du trenger også en hovedliste over kunder med adresser og kredittvurderinger. Til slutt må du administrere fakturaer for salg som du gjør, slik at du vil ha en måte å lagre fakturadata på. Fakturaen bør inneholde informasjon som dato, fakturanummer og selger, kundeinformasjon, inkludert adresse og kredittvurdering, og et linjeelement for hvert element på fakturaen. Linjeelementer bør inneholde en referanse til produktet du solgte, og være i stand til å gi riktig kostnad og pris for hvert produkt og redusere antallet på hånden basert på antallet du solgte i denne linjevaren.
Å prøve å opprette én enkelt tabell for å støtte funksjonaliteten som tidligere ble beskrevet, ville være ineffektivt. En bedre måte å nærme seg dette forretningsscenarioet på, er å opprette følgende fire tabeller:
Kunder
Produkter
Fakturaer
Linjeelementer
Hvis du oppretter en tabell for hvert av disse elementene og relaterer dem til hverandre, kan du bygge en effektiv løsning som kan skaleres samtidig som du opprettholder høy ytelse. Oppdeling av dataene i flere tabeller betyr også at du ikke trenger å lagre gjentakende data eller støtte store rader med store mengder tomme data. I tillegg blir rapportering mye enklere hvis du deler dataene i separate tabeller.
Tabeller som er relatert til hverandre, har en relasjonstilkobling. Relasjoner mellom tabeller finnes i mange former, men de to vanligste er én-til-mange og mange-til-mange, som begge støttes av Microsoft Dataverse.
Én-til-mange-relasjoner kalles også overordnede/underordnede relasjoner. I det forrige fakturaeksemplet vil fakturatabellen være overordnet, og linjeelementene vil være en underordnet tabell. En faktura kan ha null, én eller mange linjeelementer (underordnede rader), men linjeelementet vil alltid være relatert til bare én faktura (overordnet rad). Vanligvis vil ikke de underordnede radene finnes uten en overordnet rad.
En kolonne som bare tillater unike verdier, for eksempel fakturanummer, brukes til å identifisere den overordnede raden. Denne unike kolonnen kalles en nøkkel. Den samme verdien (den overordnede nøkkelen) lagres i de relaterte underordnede radene. Denne kolonnen kalles en sekundærnøkkel når den underordnede raden brukes til å lagre den overordnede nøkkelverdien. Filtrering brukes til å vise underordnede rader med en verdi i sekundærnøkkelen som samsvarer med nøkkelverdien i den overordnede raden. Dette gjør at programmer kan vise de underordnede radene (linjeelementer i forrige eksempel) som tilhører en bestemt overordnet rad (faktura i forrige eksempel). Dette konseptet ligger til grunn for mange forretningsprogrammer.
Oppdeling av data i ulike tabeller gir en effektiv løsningsutforming som kan skaleres, men det kan være vanskelig å vite hvordan du deler opp dataene i tabeller. Heldigvis inneholder Microsoft Dataverse allerede mange av tabellene som de fleste organisasjoner trenger. Hvis du bruker standardtabeller og utvider dem, sikrer du at du bygger løsninger rundt en velprøvd, skalerbar måte å lagre dataene som brukes av løsningene dine.
Trenger du hjelp? Se feilsøkingsveiledningen vår, eller send oss spesifikke tilbakemeldinger ved melde fra om et problem.