I have 2 tables:
User(LoginID,Password,Email,UserType) -- Primary key(LoginID)
Class(CourseCode, Semester,Year,ClassTime,ProID) -- Primary key(CourseCode, Semester,Year) -- Foreign key(ProID)
UserType can be Teacher, Teaching Assistant(TA) or Student. Now I dont know where I can add TA attribute so that one class has one TA and one Teacher. I am thinking about putting TAID into User table as a foreign key, so that would be:
Class(CourseCode, Semester,Year,ClassTime,ProID,TAID)
But I'm not sure it is right or not. Because when I want to get teacher and TA's Name who teach a specific course, it does not work. I've tried the query below:
SELECT dbo.[User].Name
FROM dbo.Class INNER JOIN
dbo.[User] ON dbo.Class.ProID = dbo.[User].LoginID AND dbo.Class.TAID = dbo.[User].LoginID
WHERE CrsCode=@CrsCode and Semester=@Semester and Year=@Year
Question: Does anyone have any idea for this problem? Thanks in advance.
Edit: I wrote:
alter proc SelectFacultyNameByID
@CrsCode nvarchar(5),
@Semester nvarchar(20),
@Year int
as
SELECT
u1.Name as Teacher,
u2.Name as Assistant
FROM
dbo.Class c
JOIN [User] u1
ON c.ProID = u1.LoginID
JOIN [User] u2
ON c.TAID = u2.LoginID
WHERE
c.CrsCode = @CrsCode
AND c.Semester = @Semester
AND c.Year = @Year
But it does not work!