Cải thiện ánh xạ đối tượng–dữ liệu
Bảng client của Small Business Development Center trước đó được định nghĩa mà không có người liên hệ chính của khách hàng. Phản xạ ban đầu của nhóm cơ sở dữ liệu là chỉ cần thêm các cột contact_name và contact_email vào bảng client. Tuy nhiên, bạn phản đối kế hoạch này dựa trên trực giác về cách tổ chức dữ liệu đúng đắn. Trong tương lai, một contact có thể được tham chiếu ở nhiều bảng. Trong bài tập này, bạn sẽ xác định cấu trúc bảng cho thông tin khách hàng (client) và liên hệ (contact) nhằm tách bạch tốt hơn các đối tượng client và contact.
Nhắc lại định nghĩa trước đây của bảng client:
CREATE TABLE client (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
site_url VARCHAR(50),
num_employees SMALLINT,
num_customers INTEGER
);
Bài tập này là một phần của khóa học
Tạo cơ sở dữ liệu PostgreSQL
Hướng dẫn bài tập
- Tạo bảng
contactvới các cộtid(khóa chính),name(độ dài tối đa 50) vàemail(độ dài tối đa 50). - Sửa bảng
clientbằng cách thêm cộtcontact_idlàm khóa ngoại.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
-- 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);