開始使用免費開始

降低資料冗餘

小型企業管理局之前有位員工建立了資料庫的初版。整個資料庫中,借款人、銀行與專案都會用到地點資訊。這些實體對應的各個資料表都各自使用 citystatezip_code 欄位,造成重複的資料。你的任務是將這些地點資料正規化。你將把正規化的觀念付諸實作,建立一個 place 資料表來整併地點資料。

本練習屬於課程

建立 PostgreSQL 資料庫

檢視課程

練習說明

  • 建立 place 資料表:zip_code 設為 5 個「字元」的 PRIMARY KEYcity 為最長「可達」50 個字元的文字型別,state 為 2 個字元的欄位。
  • borrower 資料表的定義中移除 citystatezip_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
  ___ ___(___) ___ ___(___)
);
編輯並執行程式碼