Таблица оценок

Таблица оценок включает в себя ссылки на учеников и потоки, а также оценку за курс.

Ключ ученика Ключ потока Оценка
    4.9
     
     
    4.9

 

Таблица 10. Таблица оценок

Имя столбца Тип данных Ограничения
student_id INTEGER NOT NULL PRIMARY KEY FOREIGN KEY
stream_id INTEGER NOT NULL PRIMARY KEY FOREIGN KEY
grade REAL NOT NULL

 

Таблица 11. Столбцы таблицы grades

Обратите внимание, что в таблице оценок нет ключевого столбца «Ключ оценки». Вместо этого, мы определили ограничение первичного ключа сразу на два столбца — «Ключ ученика» и «Ключ потока». Дело в том, что ученик получает только одну среднюю оценку по всем практическим заданиям за курс (поток). Поэтому комбинация значений ключа ученика и ключа потока уникальна в пределах всей таблицы.

В этом случае применяем составной первичный ключ, который состоит из комбинации значений нескольких столбцов.

Столбец «Ключ ученика» ссылается на таблицу учеников, а столбец «Ключ потока» — на таблицу потоков. Оба этих столбца — кандидаты на определение в качестве внешних ключей.

Команда создания таблицы grades:

CREATE TABLE grades (student_id INTEGER NOT NULL, stream_id INTEGER NOT NULL, grade REAL NOT NULL, PRIMARY KEY(student_id, stream_id), FOREIGN KEY (student_id) REFERENCES students(id), FOREIGN KEY (stream_id) REFERENCES streams(id));

 

Составной первичный ключ задаётся отдельным выражением PRIMARY KEY(student_id, stream_id).

Проверим, что все таблицы успешно созданы, и выйдем из sqlite3.

sqlite>.tables courses grades streams students sqlite>.quit

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: