CommencezCommencez gratuitement

Améliorer la correspondance objet-données

La table client du Small Business Development Center a été définie sans inclure de personne-ressource pour le client. L'instinct initial de l'équipe de base de données était simplement d'ajouter les colonnes contact_name et contact_email à la table client. Cependant, vous vous opposez à ce plan en raison de vos bonnes pratiques d'organisation des données. Plus tard, un contact pourrait être référencé dans plusieurs tables. Dans cet exercice, vous allez définir des structures de tables pour les informations sur le client et sur la personne-ressource 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
);

Cette activité fait partie du cours

Créer des bases de données PostgreSQL

Voir le cours

Instructions de l’exercice

  • 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 ce code d’exemple.

-- 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