All courses
Computer Science

Database Design with PostgreSQL, Supabase, and Data Models

Curated and verified byAbhishek Kumar, Backend Engineer, PayPal
Study time: 11 hours
LanguagesEnglish · 简体中文 · Español
$10.00Lifetime access
Certificate of completionverifiable · shareable
Preview

Most data problems are not bugs. They are decisions — made months ago, in a hurry, by someone who needed a table fast and never came back. The list crammed into one comma-separated column. The price stored as a float that now loses a cent on every thousandth order. The table anyone on the internet can read because nobody turned on a single switch. By the time these surface, the data is real and the fix is a migration done at 2 a.m. This course is about making those decisions on purpose, before there is data to lose. You start where every schema actually starts: with requirements, not a table editor. You learn to turn a domain into entities and relationships, then into a normalized PostgreSQL schema with keys and types that fit reality. You learn constraints as something stronger than app-side validation — rules the database itself will not let anyone break, including the second client you forgot about. You learn how indexes, transactions, and isolation behave when more than one user shows up at once. And because this is built on Supabase, you learn that your schema *is* your API and your security boundary: Row-Level Security, roles, and policies that decide exactly who sees which row. Then the practical patterns — JSONB, full-text search, soft deletes, hierarchies, multi-tenancy — and the anti-patterns that look clever and quietly cost you everything the database was supposed to give. Forty-two lessons, each ending the same way: now you know when to reach for this, and why.

Lessons

About the course creator

Abhishek Kumar
Abhishek Kumar
Backend Engineer, PayPal

Abhishek Kumar is the engineer teams trust with the parts of a product that cannot quietly break—authentication, payments, data synchronization, and the APIs on which other services depend. Over eight years, he has decomposed legacy applications into independently deployable services, designed event-driven workflows, and improved heavily used systems through query tuning, caching, asynchronous processing, and careful capacity planning. His working environment spans Java, Python, Go, and Node.js, supported by PostgreSQL, Redis, Kafka, Docker, Kubernetes, and AWS. Abhishek remains involved after deployment, tracing production failures, strengthening observability and automated testing, reviewing architecture decisions, and helping younger engineers develop the judgment required to keep complex systems fast, secure, and recoverable.

Reviews (12)

3.5 out of 5
  • cheery_salmon

    super clair !

  • peppy_mink

    super helpful

  • jade_explorer

    kinda boring, too many slides.

  • sassy_cuttlefish

    Quá cơ bản, không có gì mới.

  • cheerful_aardvark

    great stuff