2015-04-25 19 views
0

我有我要鏈接兩個表,我想表中的每一個人StudentID與我的整個Questions錶鏈接。如何將單個行從錶鏈接到一個整體單獨的表

我想創造的東西,讓我通過設置任意數量的從Question表問題,個別StudentStudentID所以當學生跡象到他們的賬戶,他們可以查看已設置問題的探討。我想我可能需要添加Boolean到我的問題表[set]或類似的東西,我可以更新爲真,這意味着學生現在可以查看該問題。

我會提供我的表,也許有助於解釋多一點:

問題表(我想我要到StudentID從該錶鏈接到的問題):

CREATE TABLE [dbo].[Questions] (
[QuestionID]  INT   IDENTITY (1, 1) NOT NULL, 
[Actual answer] NVARCHAR (50) NULL, 
[Question Space] NVARCHAR (50) NULL, 
[Question Type] INT   NULL, 
PRIMARY KEY CLUSTERED ([QuestionID] ASC) 
); 

課程表:

CREATE TABLE [dbo].[Classes] (
[ClassSize] INT NULL, 
[TeacherID] INT NOT NULL, 
[StudentID] INT NOT NULL, 
CONSTRAINT [PK_Classes] PRIMARY KEY CLUSTERED ([TeacherID] ASC, [StudentID] ASC), 
CONSTRAINT [FK_Classes_StudentDetails] FOREIGN KEY ([StudentID]) REFERENCES [dbo].[StudentDetails] ([StudentID]), 
CONSTRAINT [FK_Classes_TeacherDetails] FOREIGN KEY ([TeacherID]) REFERENCES [dbo].[TeacherDetails] ([TeacherID]) 
); 

StudentDetails表

(我真的不認爲這是必要爲我提供此表,但我會反正):

CREATE TABLE [dbo].[StudentDetails] (
[StudentID]  INT   IDENTITY (1, 1) NOT NULL, 
[Title]   NVARCHAR (50) NULL, 
[Username]  NVARCHAR (50) NULL, 
[Password]  NVARCHAR (50) NULL, 
[First Name] NVARCHAR (50) NULL, 
[Last Name]  NVARCHAR (50) NULL, 
[Email Address] NVARCHAR (50) NULL, 
PRIMARY KEY CLUSTERED ([StudentID] ASC) 
); 
+0

您爲classes表複製了錯誤的SQL。 –

回答

1

既然你有QuestionStudent毫米之間的關係,即一個問題可以設置爲多個學生和學生可以有多個問題,你需要的是一箇中間表,表示哪個問題被設置給哪個學生。像這樣的東西。

CREATE TABLE [dbo].[QuestionStudentAssociation] (
[QuestionStudentAssociationID] INT IDENTITY(1,1) NOT NULL, 
[QuestionID] INT NOT NULL REFERENCES Questions(QuestionID), 
[StudentID] INT NOT NULL REFERENCES StudentDetails(StudentID), 
PRIMARY KEY CLUSTERED ([QuestionStudentAssociationID] ASC) 
); 
+0

Ooo好的,謝謝,那麼這張表如何處理數據呢?我只是有很多重複例如如果他們被設置爲該學生,那麼很多行的studentID爲1和QuestionID爲1,3,4,5,6? – mot375

+1

你可以添加到該表中的學生回答,也許得分......這些都是問題 – Captain

+0

@ mot375的學生實例的屬性 - 是的,正如你提到 – ughai

相關問題