Začněte nyníZačněte zdarma

Lepší mapování objektů na data

Tabulka client Centra pro rozvoj malého podnikání byla původně definována bez kontaktní osoby klienta. Databázový tým nejprve uvažoval o tom, že do tabulky jednoduše přidá sloupce contact_name a contact_email. Ty ale odmítneš, protože tušíš, že správná organizace dat to vyžaduje jinak. V budoucnu by totiž kontakt mohl být odkazován ve více tabulkách. V tomto cvičení definuješ struktury tabulek pro informace o klientovi a kontaktu tak, aby objekty client a contact byly důsledně odděleny.

Připomeň si původní definici tabulky client:

CREATE TABLE client (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    site_url VARCHAR(50),
    num_employees SMALLINT,
    num_customers INTEGER
);

Toto cvičení je součástí kurzu

Tvorba PostgreSQL databází

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř tabulku contact se sloupci id (primární klíč), name (maximální délka 50) a email (maximální délka 50).
  • Uprav tabulku client přidáním sloupce contact_id jako cizího klíče.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

-- 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);
Upravit a spustit kód