ขยาย Snowflake Schema
บริษัทกำลังพิจารณาขยายธุรกิจร้านหนังสือออกไปนอกเหนือจากแคนาดาและสหรัฐอเมริกา โดยเฉพาะอย่างยิ่ง ต้องการขยายไปยังทวีปใหม่ เพื่อเตรียมพร้อมสำหรับสิ่งนี้ คุณจึงตัดสินใจว่าควรเพิ่มฟิลด์ continent สำหรับเก็บที่อยู่ของร้านค้า
โชคดีที่ในสถานการณ์นี้มี snowflake schema อยู่แล้ว ดังที่ได้กล่าวถึงในวิดีโอ snowflake schema ช่วยให้ขยายโครงสร้างได้รวดเร็วกว่า พร้อมทั้งรักษาความสอดคล้องของข้อมูล นอกจาก dim_country_sf แล้ว ยังมีตารางชื่อ dim_continent_sf ที่โหลดมาให้ด้วย ตารางนี้บรรจุข้อมูลทวีปที่จำเป็นในตอนนี้ คือ North America พร้อม primary key ในแบบฝึกหัดนี้ คุณจะต้องขยายตาราง dim_country_sf ให้อ้างอิงไปยัง dim_continent_sf
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบฐานข้อมูล
คำแนะนำการฝึกหัด
- เพิ่มคอลัมน์
continent_idลงในตารางdim_country_sfโดยกำหนดค่าเริ่มต้นเป็น 1 โปรดทราบว่าNOT NULL DEFAULT(1)จะป้องกันไม่ให้ค่าเป็น null และกำหนดค่าเริ่มต้นให้เป็น1 - กำหนดให้คอลัมน์ใหม่นั้นเป็น foreign key ที่อ้างอิงไปยัง
continent_idของdim_continent_sf
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Add a continent_id column with default value of 1
ALTER TABLE ___
ADD ___ int NOT NULL DEFAULT(1);
-- Add the foreign key constraint
ALTER TABLE ___ ADD CONSTRAINT country_continent
FOREIGN KEY (___) REFERENCES ___(___);
-- Output updated table
SELECT * FROM dim_country_sf;