IniziaInizia gratis

Migliorare la mappatura oggetto-dati

La tabella client dello Small Business Development Center era stata definita in precedenza senza includere un referente per il cliente. L’istinto iniziale del team del database era di aggiungere semplicemente le colonne contact_name e contact_email alla tabella client. Tuttavia, ti opponi a questo piano in base alle tue intuizioni sulla corretta organizzazione dei dati. In futuro, un contatto potrebbe essere referenziato in più tabelle. In questo esercizio, definirai strutture di tabella per le informazioni su cliente e contatto che separano meglio gli oggetti client e contact.

Ricorda la definizione precedente della tabella client:

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

Questo esercizio fa parte del corso

Creare database PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una tabella contact con le colonne id (chiave primaria), name (lunghezza massima 50) ed email (lunghezza massima 50).
  • Modifica la tabella client aggiungendo una colonna contact_id come chiave esterna.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- 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);
Modifica ed esegui il codice