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
Instructions de l’exercice
- Créez une table
contactavec les colonnesid(clé primaire),name(longueur maximale de 50) etemail(longueur maximale de 50). - Modifiez la table
clienten ajoutant une colonnecontact_idcomme 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);