Supabase som backend som tjeneste · leksjon

Relasjoner og fremmednøkler

Koble tabeller sammen med fremmednøkler for å modellere én-til-mange- og mange-til-mange-relasjoner i Supabase Postgres-databasen.

Leksjon 4 av 413 trinn

Relasjoner og fremmednøkler er en gratis leksjon i Supabase som backend som tjeneste på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Supabase som backend som tjeneste, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Supabase som backend som tjeneste inneholder totalt 4 leksjoner.

Hvorfor relasjoner er viktige

Reelle data henger sammen: En bruker har mange innlegg, og en ordre har mange varer. Relasjoner kobler rader på tvers av tabeller, slik at De unngår å duplisere data.

Hva er en fremmednøkkel?

En fremmednøkkel er en kolonne som peker på primærnøkkelen i en annen tabell. Den sikrer at den refererte raden faktisk finnes.

Eksempel på én-til-mange

Én forfatter skriver mange bøker. Tabellene books lagrer forfatterens id.

CREATE TABLE authors (
  id bigint PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  name text NOT NULL
);
CREATE TABLE books (
  id bigint PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  title text NOT NULL,
  author_id bigint REFERENCES authors(id)
);

Referanseintegritet

Postgres avviser innsending av en bok med en author_id som ikke finnes. Dette holder dataene konsistente.

ON DELETE-atferd

Bestem hva som skal skje når en overordnet rad slettes:

  • CASCADE sletter også de underordnede radene
  • SET NULL fjerner referansen
  • RESTRICT blokkerer slettingen
ALTER TABLE books
  ADD CONSTRAINT fk_author
  FOREIGN KEY (author_id)
  REFERENCES authors(id)
  ON DELETE CASCADE;

Spørre på tvers av tabeller

Med Supabase-klienten kan De hente relaterte rader i ett kall ved hjelp av nestede select-operasjoner.

const { data } = await supabase
  .from('authors')
  .select('name, books(title)');

Mange-til-mange-relasjoner

Når begge sider kan ha mange av den andre typen (studenter og kurs), bruker De en koblingstabell som inneholder begge fremmednøklene.

CREATE TABLE enrollments (
  student_id bigint REFERENCES students(id),
  course_id bigint REFERENCES courses(id),
  PRIMARY KEY (student_id, course_id)
);

Sammensatte primærnøkler

I en koblingstabell utgjør paret av fremmednøkler ofte primærnøkkelen, noe som hindrer dupliserte koblinger mellom de samme to radene.

Navnekonvensjoner

En vanlig konvensjon er å navngi fremmednøkler som singular_id (for eksempel author_id). Konsistens gjør nestede spørringer forutsigbare.

function fkName(table) {
  return table.replace(/s$/, '') + '_id';
}
console.log(fkName('authors'));

Visualisere i dashbordet

Supabase Table Editor viser relasjonskoblinger, og Schema Visualizer tegner hvordan tabellene er koblet sammen. Dette gjør det enklere å kontrollere utformingen.

Sette det hele sammen

Modeller koblinger med fremmednøkler, velg fornuftige ON DELETE-regler, og bruk koblingstabeller for mange-til-mange-relasjoner. Dette er grunnlaget for et ryddig skjema.

Rask kontroll

Test forståelsen Deres av relasjoner.

Oppsummering

De lærte om fremmednøkler, én-til-mange- kontra mange-til-mange-relasjoner, ON DELETE-atferd, koblingstabeller med sammensatte nøkler og hvordan De kan spørre etter relaterte data med nestede select-operasjoner.

Gratis å komme i gang

Lær deg Supabase som backend som tjeneste med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
11
Leksjoner
40

Ofte stilte spørsmål

Er leksjonen «Relasjoner og fremmednøkler» gratis?

Ja – hele teksten i «Relasjoner og fremmednøkler» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Supabase som backend som tjeneste-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Supabase som backend som tjeneste inneholder totalt 4 leksjoner.

Hva lærer jeg i «Relasjoner og fremmednøkler»?

Koble tabeller sammen med fremmednøkler for å modellere én-til-mange- og mange-til-mange-relasjoner i Supabase Postgres-databasen. Du øver på Supabase som backend som tjeneste med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Supabase som backend som tjeneste?

Ingen tidligere erfaring er nødvendig. Supabase som backend som tjeneste på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Relasjoner og fremmednøkler»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Supabase som backend som tjeneste-leksjonen?

Ja. Alle Supabase som backend som tjeneste-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Utforming av databaseskjemaer
  2. Opprette tabeller og kolonner
  3. Grunnleggende datainsetting og spørringer
  4. Relasjoner og fremmednøkler
← Tilbake til Supabase som backend som tjeneste