2015-09-29 43 views
0

我在我的sql中有3個表。我想讓你們反饋我如何建立我的餐桌關係。所以我有4個表格:application_table,teacher_table,student_table和class_table。SQL表結構關係反饋

這裏有幾個條件:

  1. 老師能教一個或多個類,但也師師長0級。 (1 - > N,老師 - > class_table)的關係。有一件事要注意,老師可能會離開學校。

  2. 學生可以參加很多課程。有一點要注意的是,學生可能會被驅逐或畢業。 (1 - > N學生 - >班)

  3. 一個應用程序可以被許多學生使用,並且學生可以使用許多應用程序。 (N - > N關係)

  4. 一個應用程序可以被許多老師使用,而且老師也可以使用很多應用程序。 (N→N關係)

ps。申請可能會被削減或過期,或者學校不再使用。

application_table

applicationId 
applicationName 
expiryDate 

教師和班級關係

class_table 
    classId 
    classCode 
    teacherId 

學生和階級關係

student_table 
    studentId 
    firstName 
    lastName 
    classId 

應用和老師的關係

application_teacher 
    applicationId 
    teacherId 

應用和學生的關係

appliaction_student 
    applicationId 
    studentId 

回答

0

恕我直言,你應該先學習正常化。一個很好的來源是維基百科。你的結構反對規範化(即:Student - Class不應該有firstName,lastName)。

「學校」數據庫比這個更復雜,但您的結構可能適用於沙箱學習應用程序,前提是您糾正了規範化問題。

+0

嗨切廷,謝謝你的回覆。我認爲我的學生班是正常的,因爲一個班可以參加我的許多學生,所以它應該是1-> N,並且我將classId作爲外鍵添加以證明這是一種1-> N關係 – RedRocket

+0

不,它不是好的。問題是,你有studentId和classId來支持多對多關係(這是「橋」表)。學生的名字,姓氏或班級'classCode不屬於那裏(只是外鍵)。 –

+0

你能提供一個我應該如何修復它的例子嗎?謝謝。因爲我是新來的sql – RedRocket