Meningkatkan pemetaan objek ke data
Tabel client milik Small Business Development Center sebelumnya didefinisikan tanpa menyertakan penanggung jawab (point of contact) untuk klien. Insting awal tim basis data adalah cukup menambahkan kolom contact_name dan contact_email ke tabel client. Namun, Anda menolak rencana ini berdasarkan pemahaman Anda tentang pengelolaan data yang tepat. Ke depan, satu contact mungkin akan direferensikan di beberapa tabel. Dalam latihan ini, Anda akan mendefinisikan struktur tabel untuk informasi client dan contact yang lebih jelas memisahkan objek client dan contact.
Ingat kembali definisi sebelumnya dari tabel client:
CREATE TABLE client (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
site_url VARCHAR(50),
num_employees SMALLINT,
num_customers INTEGER
);
Latihan ini adalah bagian dari kursus
Membuat Database PostgreSQL
Petunjuk latihan
- Buat tabel
contactdengan kolomid(primary key),name(panjang maks 50), danemail(panjang maks 50). - Ubah tabel
clientdengan menambahkan kolomcontact_idsebagai foreign key.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- 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);