小弟正在做資料庫的期中專題,要製作選課系統,因為要求3-tier,所以使用XAMPP的PHPmyAdmin。
我在同個資料庫中新增了學生資料(屬性包含學號、班級)、學生選課資料表(屬性包含學號、班級、課程代碼、課程名稱、學分數、必選修、已選學分數)、課程代號時段(屬性包含選課代號、星期、節)、課程資料(屬性包含開課班級、課程名稱、選課代號、學分數、必選修、開課單位、開課人數、已收授人數、授課教師)。
基本要求:
同學可以加選課程,課程加選須滿足以下限制:
(i) 人數已滿的課程不可加選;
(ii) 不可加選衝堂的課程;
(iii) 不可加選與已選課程同名的課程(EX已選資訊二丙的資料庫系統,不能再選資訊二乙的資料庫系統);
(iv) 加選後學分不可超過最高學分限制 (30 學分);
同學可以退選課程,課程退選須滿足下列限制:
(i) 退選後學分不可低於最低學分限制 (9 學分);
(ii) 退選課程若為必修課,系統須提出警告;
現在卡住的問題有:
1.學生選課資料表(目前裡面都沒資料)這個資料表的資料我要透過系統自動看學生哪個班級(學生資料中每個學生都有班級,課程資料中每門課都有開課班級,並標註必選修),就把那個班級的必修課自動加入這個學生的選課資料,要用程式控制嗎?還是資料庫內就能設定了(聽說可以但我不會)
2.判斷是否衝堂,要跟課程代號時段中的課程代碼作連結,想請問資料庫中能不能直接設定做判斷
3.人數已滿的課程不可加選,這個人數在課程資料中有已收授人數,是否也能從資料庫中判斷呢
由於我使用資料庫的經驗相當不足,所以跪求會的人救救我
看到這一句「所以使用XAMPP的PHPmyAdmin。」
我還是很無奈的再說明一次。
phpmyadmin它不是資料庫系統、不是資料庫系統、不是資料庫系統。(很重要要說3次)
它是資料庫的操作介面。
ps:說真的,很無奈。但又無解。
你要學的是sql語法的應用。
再加上,你現在問的問題,是已經把你的作業拿給其它人做了,而不是「問」了。
這點是非常不好的。
至少,你得先說說你目前的資料庫結構出來吧。不要說連結構都沒有就好了。
看了回答 再回頭看問題
恩...
那也許我問的不好吧,抱歉讓你誤會了,不過我得澄清,我是要問解決方法,不是要叫人幫我做,如果要叫人幫我做,我大可直接請朋友做,不必在這問人
如果有時間在這裏「澄清」,並解釋你所謂的動機。
倒不如來實際去了解我說這些話的用意為何。
你還是沒搞懂我所謂的「問」,是什麼。
居然還能在這邊解釋你的行為不是我說的那樣。
是就是,不是就不是。當然你如果不覺得我說的是對的。也沒關係。
至少,你目前連所謂問題都還沒看到。
我只能看到「試題」,而不是「問題」。
不過我了解你並不懂我說的意思。就如你說了。我「誤會」好了。
要嘴砲請離開,謝謝!
浩瀚星空是超佛心來的.嘿嘿,讓我們繼續看下去.
這些問題都可以利用程式解決,以問題一來說:
在學生註冊帳號時直接把他的系級的必修課都一起寫進資料表就好了(用後端做)。
而問題三:
先做SELECT查到上限人數跟目前已選人數,在把邏輯寫在後端做判斷就好了。
問題二也是差不多的邏輯。
所以最重要的是:規劃好完善的資料表。
再來:
PHPmyAdmin只是利用PHP做的MySQL管理工具,你如果想做相關應用,還是要找一門後端語言去做搭配。
PS:小弟只是不專業學生,如果回答的不對還請包涵><
你遇到的問題 SQL 都可以幫你解決喔
你可以去搜尋 SQL select,sum 之類的相關訊息
也許你能從 SQL 的部分先下手,TABLE 欄位 該怎麼規畫之類
最後是我一點淺見啦,不喜歡的話下面可以不要看
這裡是專業的論壇,沒人有空跟你打嘴砲啦
有人說話你覺得難聽,那就別聽阿,不用在那邊硬要回一下
什麼都得不到的~~
第一點
有空時請補充一項資訊
這項專題是否「使用程式語言開發系統」或是「單純使用資料庫/SQL指令」
第二點
先弄清楚「基本檔」和「交易檔」的差別
基本檔就是「寫一次,讀多次」:學生資料、課程代號時段、課程資料
交易檔就是「寫(讀)多次」:學生選課資料表
第三點
資料表的定義並不符合「正規化」(database normalization)的規則
如果想要拿高分的話,最好再修改一下
回到問題本身
1.學生選課資料表(目前裡面都沒資料)這個資料表的資料我要透過系統自動看學生哪個班級(學生資料中每個學生都有班級,課程資料中每門課都有開課班級,並標註必選修),就把那個班級的必修課自動加入這個學生的選課資料,要用程式控制嗎?還是資料庫內就能設定了(聽說可以但我不會)
1.在「課程資料」挑出所有「必修」的「開課班級」
2.在「學生資料」挑出所有「學號」(透過1的「開課班級」)
3.寫入「學生選課資料表」,(使用2的學號、班級及1的其他資料)
2.判斷是否衝堂,要跟課程代號時段中的課程代碼作連結,想請問資料庫中能不能直接設定做判斷
比對以下兩項資料, 如果有相同者則為「衝堂」
1.在「課程代號時段」挑出「星期」「節」(透過加選時的選課代號)
2.用「學生選課資料表」「課程代號時段」挑出所有「該學生已選課的」「星期」「節」
3.人數已滿的課程不可加選,這個人數在課程資料中有已收授人數,是否也能從資料庫中判斷呢
1.在「課程資料」挑出「開課人數」「收授人數」(透過加選時的選課代號)
如果收授人數大於或等於開課人數,就不能加選
最後再多嘴一句
如果你把你目前的結果和碰到的問題
都寫在SQL fiddle的話
我保證沒有人會質疑你是「問問題」或是「找人幫忙做」
個人覺得php就應該跑在linux上不然內功只能用上三成,很多好用的東西都不能掛在windos環境上。
XAMPP算是誤人子弟的東西,之後你還是要學linux。最好的路徑是 上aws開啟免費試用一年,保你功力大增且出社會後找的到工作。
ubuntu 18.04 環境架設教學 https://www.webteach.tw/?p=2602
php 基礎教學 https://www.webteach.tw/?p=1434
IT邦高手眾多,也都是熱心之人,很多話對新人來說不中聽但聽進去會很受用…加油…