减少数据冗余
小企业管理局(SBA)的一位前员工曾开发过该数据库的初始版本。整个数据库中都会用到地点信息,包括借款人、银行和项目。每个对应的表都各自包含 city、state 和 zip_code 列,造成了数据冗余。您的任务是对这些地点数据进行规范化。您将把数据规范化的知识付诸实践,创建一个 place 表来整合地点数据。
本练习是课程的一部分
创建 PostgreSQL 数据库
练习说明
- 创建
place表,其中zip_code为 5 个"字符"的PRIMARY KEY,city为最多 50 个字符的文本类型,state为 2 个字符的列。 - 通过删除定义这些列的 SQL 代码,从
borrower表的定义中移除city、state和zip_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
___ ___(___) ___ ___(___)
);