FluentStack

PostgreSQL Basics

Mode tersedia: dark, light, paper
MasukDaftar
Advanced · Level 18: Backend Basics for Frontend EngineersAdvanced60 menitBahasa Indonesia

PostgreSQL Basics

Memahami relasi, primary key, foreign key, constraint, dan index secara high level agar model UI dapat dibicarakan bersama backend dengan tepat.

StatusMemuat progres
ProgresMemuat...

...

Memuat progres

Menyiapkan langkah berikutnya

Tujuan belajar

  • Menjelaskan PostgreSQL sebagai relational database untuk data aplikasi
  • Membedakan primary key dan foreign key pada hubungan sederhana
  • Memahami constraint sebagai aturan data dan index sebagai bantuan akses data pada level konsep
  • Menyebut data relationship yang perlu dikonfirmasi sebelum membangun UI
PostgreSQLRelational DataPrimary KeyForeign KeyData Modeling

Isi lesson

6 blok
  1. 1.
    Relasi membuat data product tidak perlu diulangBelum selesaiWajib
  2. 2.
    Satu course dan banyak noteBelum selesaiWajib
  3. 3.
    Coding practiceBelum selesaiWajib
  4. 4.
    Cek pemahamanBelum selesaiWajib
  5. 5.
    Jangan memakai denormalisasi atau index sebagai solusi pertamaBelum selesaiWajib
  6. 6.
    RingkasanBelum selesaiWajib

Relasi membuat data product tidak perlu diulang

Wajib

PostgreSQL adalah relational database: data aplikasi biasanya dimodelkan dalam table yang saling terkait. Dalam Course Admin, table courses dapat memiliki id sebagai primary key, yaitu identifier unik bagi satu course. Table course_notes dapat menyimpan course_id sebagai foreign key yang merujuk ke courses.id. Dengan begitu, satu course dapat memiliki banyak note tanpa menyalin title course ke setiap row note.

Constraint adalah aturan yang membantu menjaga data tetap masuk akal, misalnya id unik, title tidak boleh kosong, atau course_id harus merujuk course yang ada. Index membantu database menemukan data tertentu lebih efisien pada pola query tertentu. Frontend perlu tahu mengapa relation dan constraint memengaruhi response atau error, tetapi belum perlu merancang migration, memilih index, atau melakukan query planning.

Bagian ini memengaruhi progres lesson.

Satu course dan banyak note

Wajib
sql
courses
  id (primary key)
  title

course_notes
  id (primary key)
  course_id (foreign key -> courses.id)
  body

course_notes.course_id membuat setiap note dapat dikaitkan ke satu course. UI course detail dapat meminta note untuk course aktif melalui backend contract. Bila user mencoba membuat note untuk course yang tidak ada, constraint atau service validation dapat menolak action. Jangan memakai nama field relation sebagai bukti bahwa user berhak membaca atau menulis semua row; authorization dan Row Level Security bila ada tetap menjadi boundary tersendiri.

Bagian ini memengaruhi progres lesson.

Coding practice

WajibDibuka di workspace khusus

Map course note relation

Petakan primary key dan foreign key pada relationship Course Admin secara deklaratif.

Tujuan awal: Fokus di tab TS.

Practice ini dibuka di workspace khusus. Buka practice untuk memakai editor, preview, dan cek otomatis.

Tombol selesai aktif setelah semua validasi wajib lolos.

5 cek otomatis4 checklist
Belum selesaiBuka practice

Cek pemahaman

WajibJawab dulu

Cek pemahaman singkat

Apa peran course_notes.course_id pada contoh ini?

Progres lesson naik setelah jawaban benar.

Kesalahan umum

Wajib

Jangan memakai denormalisasi atau index sebagai solusi pertama

UI lambat, response kosong, atau relation hilang belum otomatis berarti database harus diberi index atau data harus disalin ke table lain. Cek dahulu API request, filter, policy, response shape, loading state, dan error evidence. Perubahan schema, constraint, serta index adalah keputusan backend/data yang perlu context nyata serta owner yang tepat.

Bagian ini memengaruhi progres lesson.

Ringkasan

Wajib
  • PostgreSQL menyimpan data relational dalam table yang dapat saling terkait.
  • Primary key mengidentifikasi satu row; foreign key menghubungkan row dengan table lain.
  • Constraint menjaga aturan data; index membantu akses data pada pola tertentu.
  • Frontend perlu membaca relationship untuk memahami contract, bukan mendesain database sendiri.
  • Berikutnya, kita membandingkan Supabase sebagai backend platform dan Prisma sebagai ORM layer.

Bagian ini memengaruhi progres lesson.

Langkah berikutnya

Selesaikan bagian penting lesson ini

Lanjutkan blok wajib berikutnya: Relasi membuat data product tidak perlu diulang.