开始使用免费开始使用

减少数据冗余

小企业管理局(SBA)的一位前员工曾开发过该数据库的初始版本。整个数据库中都会用到地点信息,包括借款人、银行和项目。每个对应的表都各自包含 citystatezip_code 列,造成了数据冗余。您的任务是对这些地点数据进行规范化。您将把数据规范化的知识付诸实践,创建一个 place 表来整合地点数据。

本练习是课程的一部分

创建 PostgreSQL 数据库

查看课程

练习说明

  • 创建 place 表,其中 zip_code 为 5 个"字符"的 PRIMARY KEYcity 为最多 50 个字符的文本类型,state 为 2 个字符的列。
  • 通过删除定义这些列的 SQL 代码,从 borrower 表的定义中移除 citystatezip_code 列。
  • 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
  ___ ___(___) ___ ___(___)
);
编辑并运行代码