시작하기무료로 시작하기

객체-데이터 매핑 개선하기

Small Business Development Center의 client 테이블은 이전에 클라이언트의 연락 담당자 정보 없이 정의되었어요. 데이터베이스 팀은 처음에 contact_namecontact_email 컬럼을 client 테이블에 그냥 추가하려고 했습니다. 하지만 올바른 데이터 조직에 대한 여러분의 감각으로 이 계획에 이의를 제기했어요. 앞으로 하나의 연락 담당자가 여러 테이블에서 참조될 수도 있기 때문입니다. 이번 연습에서는 clientcontact 객체를 더 잘 분리할 수 있도록 클라이언트와 연락처 정보를 위한 테이블 구조를 정의해 보겠습니다.

이전에 정의한 client 테이블을 다시 확인해 보세요:

CREATE TABLE client (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    site_url VARCHAR(50),
    num_employees SMALLINT,
    num_customers INTEGER
);

이 연습은 강의의 일부입니다

PostgreSQL 데이터베이스 만들기

강의 보기

연습 안내

  • id(기본 키), name(최대 길이 50), email(최대 길이 50) 컬럼을 갖는 contact 테이블을 생성하세요.
  • client 테이블에 contact_id 컬럼을 외래 키로 추가하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

-- Create the contact table
___ ___ ___ (
  	-- Define the id primary key column
	___ SERIAL ___ ___,
  	-- Define the name column
  	___ ___(50) NOT NULL,
    -- Define the email column
  	___ VARCHAR(___) NOT NULL
);

-- Add contact_id to the client table
ALTER TABLE ___ ADD ___ INTEGER NOT NULL;

-- Add a FOREIGN KEY constraint to the client table
ALTER TABLE ___ ADD CONSTRAINT fk_c_id FOREIGN KEY (___) REFERENCES ___(id);
코드 편집 및 실행