Улучшение сопоставления объектов с данными
Таблица client Центра развития малого бизнеса изначально была создана без указания контактного лица для клиента. Команда разработчиков базы данных предложила просто добавить столбцы contact_name и contact_email в таблицу клиентов. Однако вы возражаете против этого плана, руководствуясь принципами правильной организации данных: в будущем контактное лицо может быть связано сразу с несколькими таблицами. В этом упражнении вы определите структуры таблиц для информации о клиентах и контактных лицах, чтобы чётко разделить объекты client и contact.
Вспомним предыдущее определение таблицы client:
CREATE TABLE client (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
site_url VARCHAR(50),
num_employees SMALLINT,
num_customers INTEGER
);
Это упражнение является частью курса
Создание баз данных PostgreSQL
Инструкции к упражнению
- Создайте таблицу
contactсо столбцамиid(первичный ключ),name(максимальная длина 50) иemail(максимальная длина 50). - Измените таблицу
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);