Supabase Backend as a Service · Lektion

Beziehungen und Fremdschlüssel

Verknüpfen Sie Tabellen mithilfe von Fremdschlüsseln, um Eins-zu-viele- und Viele-zu-viele-Beziehungen in Ihrer Supabase-Postgres-Datenbank abzubilden.

Lektion 4 von 413 Schritte

Beziehungen und Fremdschlüssel ist eine kostenlose Supabase Backend as a Service-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Supabase Backend as a Service-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Supabase Backend as a Service-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Why Relationships Matter

Real data is connected: a user has many posts, an order has many items. Relationships link rows across tables so you avoid duplicating data.

What Is a Foreign Key?

A foreign key is a column that points to the primary key of another table. It enforces that the referenced row actually exists.

One-to-Many Example

One author writes many books. The books table stores the author's 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)
);

Referential Integrity

Postgres will reject inserting a book with an author_id that does not exist. This keeps your data consistent.

ON DELETE Behavior

Decide what happens when a parent row is deleted:

  • CASCADE deletes the children too
  • SET NULL clears the reference
  • RESTRICT blocks the delete
ALTER TABLE books
  ADD CONSTRAINT fk_author
  FOREIGN KEY (author_id)
  REFERENCES authors(id)
  ON DELETE CASCADE;

Querying Across Tables

With the Supabase client you can fetch related rows in one call using nested selects.

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

Many-to-Many Relationships

When both sides can have many of the other (students and courses), use a join table holding both foreign keys.

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

Composite Primary Keys

In a join table the pair of foreign keys often forms the primary key, preventing duplicate links between the same two rows.

Naming Conventions

A common convention names foreign keys as singular_id (e.g. author_id). Consistency makes nested queries predictable.

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

Visualizing in the Dashboard

The Supabase Table Editor shows relationship links, and the Schema Visualizer draws how your tables connect, which helps verify your design.

Putting It Together

Model connections with foreign keys, choose sensible ON DELETE rules, and use join tables for many-to-many. This is the backbone of a clean schema.

Quick Check

Test your understanding of relationships.

Recap

You learned foreign keys, one-to-many vs many-to-many relationships, ON DELETE behaviors, join tables with composite keys, and how to query related data with nested selects.

Kostenlos starten

Lerne Supabase Backend as a Service mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
11
Lektionen
40

Häufig gestellte Fragen

Ist die Lektion „Beziehungen und Fremdschlüssel“ kostenlos?

Ja — der vollständige Text von „Beziehungen und Fremdschlüssel“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Supabase Backend as a Service-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Supabase Backend as a Service-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Beziehungen und Fremdschlüssel“?

Verknüpfen Sie Tabellen mithilfe von Fremdschlüsseln, um Eins-zu-viele- und Viele-zu-viele-Beziehungen in Ihrer Supabase-Postgres-Datenbank abzubilden. Du übst Supabase Backend as a Service mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Supabase Backend as a Service zu starten?

Keine Vorkenntnisse erforderlich. Supabase Backend as a Service auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Beziehungen und Fremdschlüssel“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Supabase Backend as a Service-Lektion Code schreiben und ausführen?

Ja. Jede Supabase Backend as a Service-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Datenbankschemas entwerfen
  2. Tabellen und Spalten erstellen
  3. Grundlegendes Einfügen und Abfragen von Daten
  4. Beziehungen und Fremdschlüssel
← Zurück zu Supabase Backend as a Service