降低資料冗餘
小型企業管理局之前有位員工建立了資料庫的初版。整個資料庫中,借款人、銀行與專案都會用到地點資訊。這些實體對應的各個資料表都各自使用 city、state 與 zip_code 欄位,造成重複的資料。你的任務是將這些地點資料正規化。你將把正規化的觀念付諸實作,建立一個 place 資料表來整併地點資料。
本練習屬於課程
建立 PostgreSQL 資料庫
練習說明
- 建立
place資料表:zip_code設為 5 個「字元」的PRIMARY KEY,city為最長「可達」50 個字元的文字型別,state為 2 個字元的欄位。 - 從
borrower資料表的定義中移除city、state和zip_code欄位,做法是刪除定義這些欄位的 SQL 程式碼。 - 在
borrower資料表中新增名為place_id的欄位(外鍵),並參照place資料表的zip_code欄位。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
-- 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
___ ___(___) ___ ___(___)
);