資料庫課程設計2

2022-09-09 08:27:09 字數 4669 閱讀 9847

個人認為大家對設計資料庫等思維上的問題都不存在問題,故將重點放在**撰寫,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。版本 ...

資料庫課程設計

一.概述 學生資訊管理系統是學校管理的重要工具,是學校不可或缺的一部分。隨著在校人數的不斷增加,教務系統的數量也不斷的 學校工作繁雜,資料眾多,人工管理資訊的難度也越來越大,顯然是不能滿足實際的需要,效率也是很低的。並且這種傳統的方式存在著眾多的弊端,如 保密性差.查詢不便.效率低,很難維護和更新等...