Supabase som Backend as a Service · Lektion

Utforma databasscheman

Lär er bästa praxis för att strukturera data, definiera relationer och planera databastabeller för skalbarhet och effektivitet.

Lektion 1 av 411 steg

Utforma databasscheman är en gratis lektion i Supabase som Backend as a Service på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Supabase som Backend as a Service, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Supabase som Backend as a Service innehåller totalt 4 lektioner.

Vad är ett databasschema?

Föreställ er att ni bygger ett hus. Innan ni lägger en enda tegelsten behöver ni en ritning! I databaser kallas den ritningen för ett schema.

Ett databasschema definierar strukturen för era data. Det visar:

  • Vilka tabeller som finns
  • Vilka kolumner varje tabell har
  • Hur olika tabeller hänger ihop

Ett bra schema är avgörande för ett välorganiserat, effektivt och skalbart Supabase-projekt.

Identifiera entiteter och attribut

Börja med att fundera på vilka ”saker” ni vill lagra. Det här är era entiteter. I en social app kan entiteter vara Users, Posts eller Comments.

Vilka detaljer har varje entitet? Det här är dess attribut.

  • User: namn, e-postadress, URL till profilbild
  • Post: titel, innehåll, skapandedatum

Genom att lista dessa kan ni föreställa er era tabeller.

Primärnycklar: ert unika ID

Varje entitet behöver kunna identifieras unikt. Det är här en Primary Key kommer in i bilden!

En primärnyckel är en kolumn (eller en uppsättning kolumner) som innehåller ett unikt värde för varje rad i en tabell. Tänk på den som ett elevnummer – inga två elever har samma nummer.

Den vanligaste primärnyckeln är en id-kolumn, ofta ett automatiskt inkrementerat heltal eller en UUID (Universally Unique Identifier).

Så hänger data ihop: relationer

Era entiteter existerar inte isolerat; de samverkar! Dessa kopplingar kallas relationer.

Den vanligaste typen är One-to-Many. Till exempel:

  • En User kan skriva Many Posts.
  • Ett Album kan innehålla Many Songs.

Att förstå dessa kopplingar är avgörande för att länka samman era tabeller.

Främmande nycklar: skapa kopplingar

För att skapa en One-to-Many-relation använder vi en Foreign Key.

En främmande nyckel är en kolumn i en tabell som hänvisar till primärnyckeln i en annan tabell. Det är så vi anger att ”det här inlägget tillhör den här specifika användaren”.

Om en posts-tabell behöver veta vilken user som skapade inlägget, har posts-tabellen en user_id-kolumn som pekar på id för en rad i users-tabellen.

Datatyper: lagra data på rätt sätt

När ni definierar era kolumner måste ni välja en datatyp. Den anger vilken typ av information kolumnen ska innehålla (text, tal, datum och så vidare).

Vanliga PostgreSQL-datatyper (Supabase-databasen) är bland annat:

  • text: För namn och beskrivningar
  • integer: För heltal (t.ex. ålder och antal)
  • boolean: För värdena sant/falskt (t.ex. is_active)
  • timestamp: För datum och tider (t.ex. created_at)

Genom att välja rätt typ sparar ni utrymme och förbättrar prestandan.

Normalisering: strukturera era data

Normalisering är en process för att organisera databasen så att dataredundans minskar och dataintegriteten förbättras.

Föreställ er att varje inlägg lagrar användarens fullständiga namn och e-postadress. Om användaren ändrar sin e-postadress måste ni uppdatera den på många ställen! Normalisering hjälper er att undvika detta.

Genom att dela upp data i separata, relaterade tabeller (t.ex. users och posts) lagrar ni gemensam information endast en gång.

Denormalisering: för högre hastighet

Även om normalisering är bra för dataintegriteten kan den ibland göra datahämtningen långsammare eftersom ni behöver göra en ”join” mellan många tabeller.

Denormalisering innebär att man avsiktligt introducerar redundans för att förbättra läsprestandan. Ett exempel är att lagra användarens namn direkt i en posts-tabell, trots att det också finns i users-tabellen.

Det här är en avvägning: snabbare läsning men mer komplexa uppdateringar och risk för inkonsekvenser. Använd det med eftertanke!

Design i praktiken: användare och uppgifter

Nu designar vi ett enkelt schema för användare och deras att-göra-uppgifter. Varje användare kan ha många uppgifter.

Så här kan vi definiera tabellerna utifrån våra designprinciper:

CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name TEXT NOT NULL,
  email TEXT UNIQUE NOT NULL,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

CREATE TABLE tasks (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id UUID REFERENCES users(id) ON DELETE CASCADE,
  title TEXT NOT NULL,
  description TEXT,
  is_complete BOOLEAN DEFAULT FALSE,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

Snabbtest: designkoncept

Ni planerar en databas för en blogg. Ni behöver lagra Authors och deras Articles. Varje författare kan skriva många artiklar.

Vilka av följande påståenden tillämpar korrekta principer för schemadesign i det här scenariot?

Sammanfattning: er designresa

Ni har precis tagit era första steg inom design av databasscheman!

Vi gick igenom:

  • Att identifiera entiteter och attribut
  • Rollen för primärnycklar och främmande nycklar
  • Att förstå relationer (särskilt One-to-Many)
  • Vikten av att välja rätt datatyper
  • En kort introduktion till normalisering och denormalisering

Ett väl utformat schema är grunden för alla robusta applikationer. I nästa lektion omsätter vi kunskaperna i praktiken genom att skapa tabeller!

Gratis att börja

Lär dig Supabase som Backend as a Service med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
11
Lektioner
40

Vanliga frågor

Är lektionen ”Utforma databasscheman” gratis?

Ja – hela texten till ”Utforma databasscheman” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Supabase som Backend as a Service, kan Ni uppgradera till CoddyKit PRO. Kursen i Supabase som Backend as a Service innehåller totalt 4 lektioner.

Vad lär jag mig i ”Utforma databasscheman”?

Lär er bästa praxis för att strukturera data, definiera relationer och planera databastabeller för skalbarhet och effektivitet. Ni övar på Supabase som Backend as a Service med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Supabase som Backend as a Service?

Du behöver inga förkunskaper. Utbildningen i Supabase som Backend as a Service på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Utforma databasscheman”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Supabase som Backend as a Service-lektionen?

Ja. Varje Supabase som Backend as a Service-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Utforma databasscheman
  2. Skapa tabeller och kolumner
  3. Grundläggande datainsättning och frågekörning
  4. Relationer och främmande nycklar
← Tillbaka till Supabase som Backend as a Service