ปรับปรุงการแมปข้อมูลกับออบเจกต์
ตาราง client ของ Small Business Development Center ถูกสร้างขึ้นในตอนแรกโดยไม่มีข้อมูลผู้ติดต่อของลูกค้า ทีมฐานข้อมูลมีแนวคิดแรกเริ่มว่าจะเพิ่มคอลัมน์ contact_name และ contact_email เข้าไปในตาราง client โดยตรง อย่างไรก็ตาม คุณเห็นว่าแนวทางนี้ไม่เหมาะสมเนื่องจากหลักการจัดระเบียบข้อมูลที่ดี เพราะในอนาคตข้อมูลผู้ติดต่ออาจถูกอ้างอิงในหลายตาราง ในแบบฝึกหัดนี้ จะได้กำหนดโครงสร้างตารางสำหรับข้อมูลลูกค้าและผู้ติดต่อที่แยก client และ contact ออกจากกันอย่างเหมาะสม
นึกถึงนิยามเดิมของตาราง client:
CREATE TABLE client (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
site_url VARCHAR(50),
num_employees SMALLINT,
num_customers INTEGER
);
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างฐานข้อมูล PostgreSQL
คำแนะนำการฝึกหัด
- สร้างตาราง
contactที่มีคอลัมน์id(เป็น primary key),name(ความยาวสูงสุด 50 อักขระ) และemail(ความยาวสูงสุด 50 อักขระ) - แก้ไขตาราง
clientโดยเพิ่มคอลัมน์contact_idเป็น foreign key
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- 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);