個人認為大家對設計資料庫等思維上的問題都不存在問題,故將重點放在**撰寫,debug,環境配置上。
前端使用html+css+js+php
後端php+mysql
工具使用:phpstorm,mysql bench,edge瀏覽器,firefox瀏覽器
學習html,php的基本語法等
詳盡的思考系統邊界
進行資料庫設計以及功能實現(客戶端)的設計
同時進行功能的增加和debug
使用phpstudy懶人包,直接完成配置(但是也存在問題).
**1 **download phpstudy window/linux version
2.5mysql圖形管理工具,可以使用phpmyadmin(個人沒有使用成功),或者mysql bench.
4在phpstorm中選擇php直譯器,於是就可以進行php**的編寫了!
以下是我個人遇到的問題。
1mysql啟動
首先在本機(arch linux),mysql無法正常啟動,顯示
can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
解決方案:無解,換一台電腦(widows10)進行coding.
2mysql配置
phpstudy中無法啟動mysql.點選啟動會立刻停止。
解決方案:
2.在服務中中斷mysql(失敗方案),windows不讓終止,遂放棄。
3phpstorm配置
如果是初次使用jetbrains的產品,需要使用山大雲郵進行驗證。
4phpstorm配置
解決方案:
1.phpstorm中,file->settings->php
3.新增cli interpreter,選擇localpath,在phpstudy的安裝路徑中,
./phpstudy/extention
如果是windows系統選擇php.exe,linux下選擇對應的可執行檔案。
綜上,php開發環境配置完成。乙個問題,老師是否有許可權開設課程?或者說,是否任何老師都有許可權開設課程?
答案為否。故個人認為只有管理員有許可權開設課程,老師也需要服從組織安排(bushi)
真的不是我懶
與其說是資料庫設計的不合理,不如說是前端設計的不合理。
暫時需要人工的新增學生賬號和課程號,然而這些作為key的屬性最好是不可以人為改變的。
學生選課系統,顧名思義,應該負責管理選課,課程開設等。
但對於成績管理是否應該列入其中呢?
如果需要列入其中,那麼這麼過去開設的課程的資訊就需要一直儲存下來,也就是說對每一學期的課程都要進行儲存。但是顯然乙個學生歷史成績如何對當下的選課關聯性不大。
由於大家使用的程式語言不盡相同,這裡只用php做具體例子。
就學生選課系統來說,需要有登入介面,然後對於學生,老師,管理員有不同的介面。每個介面都要實現相應的功能。(先把需要的功能設計好)
就登入介面和學生端,需要實現登入的方法,課程的增刪查改。
於是在登入介面,首先使用html的表單功能實現輸入帳號和密碼
然後通過php的一些magic global constant,將表單中的資料讀入到變數中
$id = $_request["account"];
$password_now = $_request["password"];
然後鏈結資料庫,在資料庫中查詢學生/老師/管理員的帳號是否存在與輸入一致的,且檢查密碼是否正確,若存在且密碼正確,則跳轉到對應的學生/老師/管理員埠.
<?php
$id = $_request["account"];
$password_now = $_request["password"];
//database operations
$conn = connectmysql();
$student_password = querystudentpassword($conn,$id);
$teacher_password = queryteacherpassword($conn,$id);
$administrator_password = queryadminpassword($conn,$id);
//echo $student_password;
//echo $student_password_now;
if($_request["login"] == "登陸")else
if($teacher_password === $password_now && $password_now != "")
if($administrator_password === $password_now && $password_now != "")
}?>
學生埠可以照葫蘆畫瓢,同樣用表單讀入資料,然後進行增刪查改。
<?php
function connectmysql()
return $conn;
}function querystudentpassword($conn,$sid)
function queryteacherpassword($conn,$tid)
function queryadminpassword($conn,$aid)
function querycourse($conn,$cid,$cname)else
}function listcourse($conn)
}function listselectcourse($conn,$sid)
}function selectcourse($conn,$sid,$cid)
if($result1->num_rows > 0)
$sql3 = "insert into student_course values($sid,$cid,null)";
if ($conn->query($sql3) === true) else
}function dropcourse($conn,$sid,$cid)
if($result1->num_rows === 0)
$sql3 = "delete from student_course where cid = $cid and sid = $sid";
$result3 = $conn->query($sql3);
if($result3) else
}function liststudentinfo($conn,$sid)
?>
<?php
// 個人資訊
session_start();
$conn = connectmysql();
$sid = $_session["id"];
liststudentinfo($conn,$sid);
if($_request["選課"] == "submit")
if($_request["查詢"] == "submit")
}if($_request["退課"] == "退課")
if($_request["list_course"] == "列出課表")
if($_request["list_select_course"] == "列出已選課表")
?>
1檔案間傳值
由於php的變數作用域是檔案,因此在登入系統中,進行跳轉後變數會丟失(比如無法知道當前登入的帳號是什麼)。
解決方案:使用session
session可以將值傳給伺服器,然後由伺服器儲存,需要時再取出。
//資料傳到伺服器。
session_start();
$_session["id"] = $id;
//資料從伺服器讀出
session_start();
$sid = $_session["id"];
由於mysql8使用了新的密碼驗證外掛程式,因此使用網路上的教程無法鏈結
(顯示如下)
the server requested authentication method unknown to the client
解決方案(個人):啟動mysql安裝包,進行版本管理,對密碼驗證功能選擇舊版本即可。
或者使用部落格方法(失敗):
1不出所料,果然又出現了對中文的支援問題,在新增課程的過程中,發現如果課程名稱為中文則會新增失敗,暫時正在解決。
顯然,這個介面實在是太醜了!過於拉跨。
密碼在資料庫中儲存的為密碼本身,這很不安全(但是方便除錯),所以計畫更改為md5加密後的字串。
如今的基本功能已經能用,但是使用很不方便,因此計畫進行優化。
此**為兩天內趕工趕出,並沒有做太多合理性檢測,很有可能有由於使用者操作導致的意料之外的bug.
資料庫課程設計
資料庫課程設計 設計目的 1 回顧關聯式資料庫的理論知識,理論聯絡實際,解決實際問題 2 通過分析問題和輔助開發工具的應用,掌握在ms sql server或oracle平台進行資料庫實現 3 嘗試結合高階語言程式設計實現資料庫管理與應用系統的開發 時間安排 1 集中指導 14學時左右 2 課外學時...
資料庫課程設計
要求b s結構,前台語言框架不限,後台資料庫不限建議 sql server mysql 機時安排系統 建立乙個機時安排系統,編寫應用程式完成系統開發。建立基本表 機房安排表 周節,星期,節號,機房號,教師,課程名,班級,人數 基於win10作業系統,資料庫使用mysql,web編寫使用php。版本 ...
資料庫課程設計
一.概述 學生資訊管理系統是學校管理的重要工具,是學校不可或缺的一部分。隨著在校人數的不斷增加,教務系統的數量也不斷的 學校工作繁雜,資料眾多,人工管理資訊的難度也越來越大,顯然是不能滿足實際的需要,效率也是很低的。並且這種傳統的方式存在著眾多的弊端,如 保密性差.查詢不便.效率低,很難維護和更新等...