Förbättra mappningen mellan objekt och data
Tabellen client för Small Business Development Center definierades tidigare utan en kontaktperson för klienten. Databasteamets första tanke var att helt enkelt lägga till kolumnerna contact_name och contact_email i klienttabellen. Du invänder dock mot det förslaget, eftersom du instinktivt känner att data bör organiseras på ett mer strukturerat sätt. I framtiden kan en kontakt komma att refereras till i flera tabeller. I den här övningen ska du definiera tabellstrukturer för klient- och kontaktinformation som tydligare separerar objekten client och contact.
Här är den tidigare definitionen av tabellen client:
CREATE TABLE client (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
site_url VARCHAR(50),
num_employees SMALLINT,
num_customers INTEGER
);
Den här övningen är en del av kursen
Skapa PostgreSQL-databaser
Övningsinstruktioner
- Skapa en tabell
contactmed kolumnernaid(en primärnyckel),name(max 50 tecken) ochemail(max 50 tecken). - Ändra tabellen
clientgenom att lägga till kolumnencontact_idsom en främmande nyckel.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- 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);