CommencerCommencer gratuitement

Améliorer la correspondance entre objets et données

La table client du Small Business Development Center a été définie sans inclure de point de contact pour le client. Le premier réflexe de l’équipe base de données a été d’ajouter simplement les colonnes contact_name et contact_email à la table client. Cependant, vous vous opposez à ce plan au nom des bonnes pratiques d’organisation des données. À l’avenir, un même contact pourrait être référencé dans plusieurs tables. Dans cet exercice, vous allez définir des structures de tables pour les informations client et contact qui séparent mieux les objets client et contact.

Rappelez-vous la définition précédente de la table client :

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

Cet exercice fait partie du cours

Créer des bases de données PostgreSQL

Afficher le cours

Instructions

  • Créez une table contact avec les colonnes id (clé primaire), name (longueur maximale de 50) et email (longueur maximale de 50).
  • Modifiez la table client en ajoutant une colonne contact_id comme clé étrangère.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- 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);
Modifier et exécuter le code