我有一個表類,它存儲不同大學班級(唯一的Class_ID和部門,課程等)的數據。設置MySQL的交叉列表查詢
某些類與多個名稱交叉列出。例如,同一班級可能被列爲HIST-204(歷史)和AAST-103(非裔美國人研究)。一個班級可以有兩個以上的交叉列表。
我想正確地存儲交叉列表,以便當學生使用任何可能的交叉列表搜索課程的教科書(存儲在Class_Books表中)時,會顯示所需的書籍。這是而不是重要的是,當學生進行搜索時,學生是否知道其他交叉列表,只有他們獲得該課程的書籍。
我想通過在Classes中存儲一個Cross_List_ID來做到這一點,這將表明給定的類只是現有類的交叉列表,其Class_ID將存儲在該字段中。然後,我只需要將交叉列出的Class_ID存儲在所需的書籍(在Class_Books中)。然後,當學生在搜索中進入課程時,我會確保包含Cross_List_ID所需的所有書籍。如果您同意這是要走的路,我會對您如何設置該查詢感興趣(獲取輸入的class_id的課本以及其交叉列表)。
另一個選項似乎是爲每個交叉列表存儲Class_Books數據..我不想這樣做,因爲我上傳到數據庫的原始Class和Class-Book數據本身並不適用這是因爲每個文件都有單獨的文件,並且只有一個交叉列表鏈接到Class-Book文件中的Book。而且,即使這種方法很容易實現,它也會佔用更多的數據庫空間。
如果您不同意我的Cross_Listing_ID方法,我接受其他選項。就像我說的,如果你同意這種方法,那麼請幫我查詢一下!
注:類書籍的結構,就像類標識碼,Book_ID
如果您的上述兩個類實際上是一個具有兩個名稱的類,那麼爲它創建兩個Class條目看起來在邏輯上是錯誤的。你有沒有這樣做的原因,而不是從Class中移除代碼並單獨存儲它們,以便Class可以有1 + Class_Codes? – ijw 2011-01-07 01:30:24
所以基本上你會建議一個Class_Listings表,從Classes表中分離出來,然後用戶會搜索Class_Listings,它會加入到Classes中以獲取書籍? – babonk 2011-01-07 20:40:55