2013-12-22 83 views
0

我真的不知道如何描述這個問題(正如你通過狡猾的標題所說的),所以這裏是對問題的完整描述。 我有兩個班,老師和班級。 每個老師可以教幾個班,每個班有幾個老師。 在Java中,我們已經制定這樣的:Java DB:將一個類的多個實例綁定到另一個類的一個實例

public class Class { 
@ManyToMany(mappedBy = "classes") 
private List<Teacher> teachers = new ArrayList<>(); 
} 

我們有一個超類,用戶,和兩個子類,老師和學生。這些類從User超類繼承。因此,在我們的數據庫中,我們有一個名爲Users的表格,它將所有用戶存儲爲教師或學生。 現在,學生只能在一個班,所以他們只能有一個ClassID存儲在數據庫中。但正如我之前所說的,教師可以有幾個班級。所以問題是:我如何能夠存儲教師在數據庫中的所有課程? 我看到Java創建了一個名爲User_Class的額外表格,這可能是存儲教師所有不同類別的表格,反之亦然。問題是我找不到有關如何處理這個問題的任何文檔。

有人可以幫我一把嗎?

在此先感謝。

回答

1

在試圖通過代碼解決這個問題之前,我認爲你需要從數據庫的角度來理解它。

您正試圖建立多對多的關係。這種關係是通過將它分成兩個一對多的關係而建立的。

所以,如果你有兩個實體(即CourseTeacher ...我避免使用「類」,以防止混淆),和一個Course可以有很多Teacher S和一個Teacher可以有很多Course s,則一種方式創建的關係(在數據庫中)會是這樣:

Courses

courseId  (PK) 
courseName 

Teachers

teacherId (PK) 
teacherName 

Courses_Teachers

courseId (FK, PK) 
teacherId (FK, PK) 

PK代表 「主鍵」,並FK代表 「外鍵」)

希望這個小介紹可以幫助您可視化解決你的問題的方法。

+0

這證實了我的想法,我的數據庫的設置是正確的。我有一張桌子老師和課程,以及一張表teachers_courses。但我不知道如何通過Java和JSON爲一位教師分配多個課程。 – JordyV

+1

分步驟分步:首先添加教師和課程,然後通過向「courses_teachers」表中添加記錄來保存課程和教師的ID – Barranka

+0

這可以通過java代碼完成嗎?或者我必須使用SQL執行此操作 因爲我希望能夠讓用戶自己調整這些關係。 – JordyV

相關問題