ลดความซ้ำซ้อนของข้อมูล
พนักงานคนก่อนของ Small Business Administration ได้พัฒนาฐานข้อมูลเวอร์ชันแรกเอาไว้ โดยมีการใช้ข้อมูลตำแหน่งที่ตั้งทั่วทั้งฐานข้อมูลสำหรับผู้กู้ ธนาคาร และโครงการ ตารางที่เกี่ยวข้องกับแต่ละหน่วยงานเหล่านี้ต่างมีคอลัมน์ city, state และ zip_code ซึ่งทำให้เกิดข้อมูลซ้ำซ้อน หน้าที่ของคุณคือนำความรู้ด้าน data normalization มาใช้จัดการข้อมูลตำแหน่งที่ตั้งเหล่านี้ โดยสร้างตาราง place เพื่อรวมข้อมูลตำแหน่งที่ตั้งไว้ที่เดียวกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างฐานข้อมูล PostgreSQL
คำแนะนำการฝึกหัด
- สร้างตาราง
placeโดยกำหนดให้zip_codeเป็นPRIMARY KEYชนิด ตัวอักษร 5 ตัว,cityเป็นชนิด text ที่รองรับความยาวสูงสุด 50 ตัวอักษร และstateเป็นคอลัมน์ขนาด 2 ตัวอักษร - ลบคอลัมน์
city,stateและzip_codeออกจากนิยามตารางborrowerโดยลบโค้ด SQL ที่กำหนดคอลัมน์เหล่านั้นออก - เพิ่มคอลัมน์ชื่อ
place_id(ซึ่งเป็น foreign key) ลงในตารางborrowerโดยอ้างอิงไปยังคอลัมน์zip_codeของตารางplace
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Create the place table
___ ___ ___ (
-- Define zip_code column
___ ___(___) ___ KEY,
-- Define city column
___ ___(___) NOT NULL,
-- Define state column
___ ___(___) NOT NULL
);
CREATE TABLE borrower (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
approved BOOLEAN DEFAULT NULL,
-- Remove zip_code column (defined below)
zip_code CHAR(5) NOT NULL,
-- Remove city column (defined below)
city VARCHAR(50) NOT NULL,
-- Remove state column (defined below)
state CHAR(2) NOT NULL,
-- Add column referencing place table
___ ___(___) ___ ___(___)
);