2013-06-01 3 views
1

В реляционной базе данных, если есть таблица Student и таблица Employee, и третья таблица StudentAsst, которая указывает множественное наследование как из таблиц Student, так и Employee.Как реализовать множественное наследование в SQL?

Мой вопрос: в SQL как создать StudentAsst, и каков его первичный ключ?

+0

Базы данных не имеют наследования, множественных или иных. Каждая таблица независима. – Barmar

+0

Каковы отношения? работник к студенту, студент к asst, работнику к asst? (от одного до многих и т. д.) – Sharky

ответ

1

Поскольку StudentAsst является отличницей и-отрудник, ваша таблица может иметь первичный ключ, состоящий из EmployeeID и StudentID:

CREATE TABLE StudentAsst 
(StudentID int, 
EmployeeID int, 
..., 
CONSTRAINT PK_StudentAsst PRIMARY KEY (StudentID, EmployeeID), 
CONSTRAINT FK_Employee FOREIGN KEY (EmployeeId) 
      REFERENCES Employee(EmployeeID), 
CONSTRAINT FK_Student FOREIGN KEY (StudentID) 
      REFERENCES Student(StudentID) 
) 

Here is an example подобной ситуации с Универсиадой, учителями и родителями.

+1

Я должен добавить в качестве примечания, что даже если это может ответить на ваш вопрос, вы должны спросить себя, почему вам нужна таблица StudentAsst. Если нет уникальных полей для помощника студента, было бы проще иметь внешний ключ из вашей таблицы Student в таблице Employee, указывая, что студент также является сотрудником. – dlebech