Zacznij terazZacznij za darmo

Lepsze odwzorowanie obiektów na dane

Tabela client w Small Business Development Center została wcześniej zdefiniowana bez uwzględnienia osoby kontaktowej dla klienta. Zespół bazodanowy chciał po prostu dodać kolumny contact_name i contact_email do tabeli klienta. Ty jednak sprzeciwiasz się temu rozwiązaniu, kierując się intuicją dotyczącą właściwej organizacji danych. W przyszłości dane kontaktowe mogą być przywoływane w wielu tabelach. W tym ćwiczeniu zdefiniujesz struktury tabel dla informacji o kliencie i osobie kontaktowej tak, aby lepiej oddzielić obiekty client i contact.

Przypomnienie poprzedniej definicji tabeli client:

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

To ćwiczenie jest częścią kursu

Tworzenie baz danych w PostgreSQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz tabelę contact z kolumnami id (klucz główny), name (maksymalna długość 50) oraz email (maksymalna długość 50).
  • Zmodyfikuj tabelę client, dodając kolumnę contact_id jako klucz obcy.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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);
Edytuj i uruchom kod