Каково значение объявления атрибутов внешнего ключа в качестве первичного ключа в той же таблице в SQL? - PullRequest
0 голосов
/ 16 апреля 2020

В концепциях системы базы данных таблица создается с использованием

create table section
(course_id    varchar (8),
sec_id    varchar (8),
semester    varchar (6),
year    numeric (4,0),
building    varchar (15),
room_number varchar (7),
time_slot_id varchar (4),
primary key (course_id, sec id, semester, year),
foreign key (course_id) references course);

Здесь course_id уже является первичным ключом в отношении course, но сначала она объявляется как первичный ключ в section отношение до объявления его как внешнего ключа. Это избыточно? Вносит ли это какие-либо изменения?

Отношение course выглядит следующим образом:

create table course
(course_id    varchar (7),
title    varchar (50),
dept_name    varchar (20),
credits   numeric (2,0),
primary key (course_id),
foreign key (dept_name) references department);

Также в отношении курса dept_name, который является внешним ключом не объявляется как первичный ключ в той же таблице.

Итак, мой вопрос:

  1. Хорошо ли объявлять атрибуты внешнего ключа, которые уже являются первичным ключом в ссылочном отношении, первичным ключом в отношении ссылок?

  2. если да, то почему?

edit: синтаксис может быть не подходящим для многих, но так как он из седьмое издание книги, пожалуйста, не обращайте внимания на синтаксис и сфокусируйтесь на главном вопросе, является ли он избыточным или нет? Кроме того, так как это одна из самых классных c книг, я считаю, что должна быть причина, по которой стоит писать подобное.

...