Вопрос №55440 от пользователя Daniyar Zhanakhmetov в уроке «Реляционная модель данных», курс «Основы реляционных баз данных»

Daniyar Zhanakhmetov

Связь главной и подчиненнной таблицы осуществляется через первичный ключ (primary key) главной таблицы и внешний ключ ( foreign key ) подчиненной таблицы. Внешний ключ это атрибут или набор атрибутов, который в главной таблице является первичным ключем.

CREATE TABLE users (
    first_name varchar(255),
    last_name varchar(255),
    created_at timestamp
);

CREATE TABLE cars  (
    user_first_name varchar(255),
    brand  varchar(255),
    model  varchar(255)
);

users явно тут главная таблица. Здесь first_name, last_name я бы отнес к набору первичного ключа. В cars же, на мой взгляд, не хватает домена user_last_name, тогда бы user_first_name и user_last_name были бы набором внешнего ключа.

Или внешний ключ подчиненнной таблицы может состоять из части первичного ключа главной таблицы?

1 0

Maksim Litvinov

Это упражнение напрямую не связано с теорией урока. Скорее, оно показывает, что между таблицами может существовать связь. Первичные ключи будут рассматриваться только в следующем уроке, поэтому здесь не используются. Естественные первичные ключи (например имя и фамилия), как правило, не используются в реальности. Чаще используется суррогатный ключ, например уникальный id. В таблице users тогда появилось бы поле id, а в таблице cars поле user_id. Но эти темы будут раскрыты только в следующих уроках

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
25 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
25 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
25 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
25 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
25 мая 5 месяцев