Objekt-zu-Daten-Abbildung verbessern
Die client-Tabelle des Small Business Development Center wurde zuvor ohne Angabe einer Kontaktperson für den Client definiert. Der erste Impuls des Datenbankteams war, einfach die Spalten contact_name und contact_email zur client-Tabelle hinzuzufügen. Du widersprichst diesem Plan jedoch aufgrund deiner Erfahrung mit guter Datenorganisation. In Zukunft könnte ein Kontakt in mehreren Tabellen referenziert werden. In dieser Übung definierst du Tabellenstrukturen für die Client- und Kontaktinformationen, die die Objekte client und contact besser trennen.
Erinnere dich an die frühere Definition der client-Tabelle:
CREATE TABLE client (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
site_url VARCHAR(50),
num_employees SMALLINT,
num_customers INTEGER
);
Diese Übung ist Teil des Kurses
Erstellen von PostgreSQL-Datenbanken
Anleitung zur Übung
- Erstelle eine
contact-Tabelle mit den Spaltenid(Primärschlüssel),name(maximale Länge 50) undemail(maximale Länge 50). - Ändere die
client-Tabelle, indem du einecontact_id-Spalte als Fremdschlüssel hinzufügst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
-- Create the contact table
___ ___ ___ (
-- Define the id primary key column
___ SERIAL ___ ___,
-- Define the name column
___ ___(50) NOT NULL,
-- Define the email column
___ VARCHAR(___) NOT NULL
);
-- Add contact_id to the client table
ALTER TABLE ___ ADD ___ INTEGER NOT NULL;
-- Add a FOREIGN KEY constraint to the client table
ALTER TABLE ___ ADD CONSTRAINT fk_c_id FOREIGN KEY (___) REFERENCES ___(id);