ÎncepețiÎncepe gratuit

Îmbunătățirea mapării obiectelor la date

Tabelul client al Centrului de Dezvoltare pentru Afaceri Mici a fost definit inițial fără includerea unui punct de contact pentru client. Prima reacție a echipei de baze de date a fost să adauge pur și simplu coloanele contact_name și contact_email în tabelul client. Tu te opui însă acestui plan, pe baza instinctului tău privind organizarea corectă a datelor. În viitor, un contact ar putea fi referențiat în mai multe tabele. În acest exercițiu, vei defini structuri de tabele pentru informațiile despre client și contact, care separă mai bine obiectele client și contact.

Amintește-ți definiția anterioară a tabelului client:

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

Acest exercițiu face parte din cursul

Crearea bazelor de date PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un tabel contact cu coloanele id (cheie primară), name (lungime maximă de 50) și email (lungime maximă de 50).
  • Modifică tabelul client adăugând o coloană contact_id ca cheie externă.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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);
Editează și rulează codul