2013-06-04 73 views
0

學生可以參加很多課程。 一門課程可以有很多學生。 =>學生和課程有n-n關係關係數據庫中的學生,專業和課程關係

學生可以有很多專業。 一個專業可以有很多學生。 =>學生與專業有n-n關係

課程可以屬於很多專業。 (例如MATH-125屬於數學和計算科學)。 一個專業有很多課程。 =>課程和專業有n-n關係。

問題: 我想向下面的數據庫添加一個主表,但如果我將3個表(課程,學生和專業)連接在一起,它將成爲循環引用。

Database

我怎麼能不與誰想要採取特定課程的學生,必須在該課程屬於主要規則循環引用他們的模型。

回答

1

創建CourseMajorStudentMajor表。

CourseMajor將包含CourseIDMajorID

StudentMajor將包含StudentIDMajorID

+0

謝謝你回答我。如果我這樣做,它會像http://i866.photobucket.com/albums/ab225/chaocanha/Untitled1_zps0948c374.jpg可以有大圈關係嗎?我怎樣才能防止學生參加不屬於他們專業的課程? –

+0

圖表看起來很好。通過加入MajorID的CourseMajor和StudentMajor表,並阻止StudentID出現在結果記錄集中,阻止學生參加不屬於他們專業的課程。 –

+0

因此,當一個學生參加一門課程時,我們將檢查這門課程是否屬於該學生的專業。如果不是,我們阻止他/她將新的記錄插入到腳本表中。因此,基本上,我們將通過實施查詢來實現這一點。是對的嗎? –