0

私は、成績ポイント、平均成績ポイント、および累積成績ポイントを計算するオンラインの学生の結果に基づいてプロジェクトを書いています。必要な出力は次のとおりです。

Name: Shakira Abdullahi
Adm.No: 096784657    
Department: Information Technology
Semester: 1st semester
Level: 200

Course title                     Course code    Course unit    score     Grade
Computer programming II            Csc 201        3             45        D
Introduction to file procesing     Csc 204        2             57        C
Introduction to the internet       Int 201        3             34        F
Linear algebra II                  Mth 205        2             60        B
Real Analysis I                    Mth 207        3             76        A
Numeric Analysis                   Mth 209        2             42        E
Nigerian people and culture        Gst 201        2             80        A

Units this session:17
Units to date:35
G.P this session:47
G.P.A last session:3.43
G.P.A to date:2.87
Remarks: To repeat Int 201

Examination grading
Score(%)    grade   Grade points     
70-100        A       5
60-69         B       4
50-59         C       3
45-49         D       2
40-44         E       1
0-39          F       0

説明:

  • Units this session:このセッションの合計コースユニット
  • Units to date:このセッションまでの各セッション単位の累積
  • G.P this session:sum(各コース(成績点×単位))
  • G.P to date:このセッションまでの各セッションGPの累積
  • G.P.A last session:平均GP前回のセッション
  • G.P.A to date:これまでの平均GP。
  • level:最大4つのレベルがあります:100、200、300、400

また、結果にアクセスする前にユーザーが必要とするものは、名前、Adm.No、部門、学期、およびセッションです。セッションは、2010年から2011年などの年の形式です。

では、どうすればこのプロジェクトに取り掛かることができますか?私の質問は次のとおりです。

  • このためのテーブルを維持できますか?
  • クエリを実行するにはどうすればよいですか?
4

1 に答える 1

4

学生のマスターテーブルにリンクするさまざまなテーブルを持つデータベースを作成することをお勧めします。

これは私が作成するテーブルの構造です:

  • 学生
  • コース
  • 得点
  • グレーディング

これらのそれぞれに、必要な列を作成します。

生徒用テーブル

学生テーブル内に、次の列を作成します。

  • ID (プライマリ、INT、11、自動インクリメント)
  • 名前 (Varchar、256)
  • AdmNo (INT、11)
  • 部門 (Varchar、256)
  • 学期 (対応する値を持つ ID または最大 256 文字の Varchar の可能性があります)
  • レベル(INT、11)
  • セッションユニット (INT、11)
  • 日付単位 (INT、11)
  • このGP (INT,11)
  • LastGPA (フロート)
  • TDGPA (フロート)
  • 備考 (Varchar, 256)

コース

  • ID (プライマリ、INT、11、自動インクリメント)
  • 名前 (Varchar、256)
  • CourseCode (Varchar、256)

スコア

  • ID (プライマリ、INT、11、自動インクリメント)
  • 学生ID(ID、11)
  • CourseID (ID、11)
  • スコア (ID、11)
  • CourseUnit (ID,11)
  • グレード (Varchar、256)

グレーディング

  • ScoreMinPercent (INT,11)
  • ScoreMaxPercent (INT,11)
  • グレード (Varchar、256)
  • グレードポイント (INT, 11)

値が含まれている SQL は次のようになります。

CREATE TABLE IF NOT EXISTS `student` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(256) NOT NULL,
  `AdmNo` int(11) NOT NULL,
  `Department` varchar(256) NOT NULL,
  `Semester` varchar(256) NOT NULL,
  `Level` int(11) NOT NULL,
  `SessionUnits` int(11) NOT NULL,
  `DateUnits` int(11) NOT NULL,
  `ThisGP` int(11) NOT NULL,
  `LastGPA` float NOT NULL,
  `TDGPA` float NOT NULL,
  `Remarks` varchar(256) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `student` (`ID`, `Name`, `AdmNo`, `Department`, `Semester`, `Level`, `SessionUnits`, `DateUnits`, `ThisGP`, `LastGPA`, `TDGPA`, `Remarks`) VALUES
(1, 'Shakira Abdullahi', 96784657, 'Information Technology', '1st semester', 200, 17, 35, 47, 3.43, 2.87, 'To repeat Int 201');

CREATE TABLE IF NOT EXISTS `courses` (
  `ID` int(11) NOT NULL DEFAULT '0',
  `Name` varchar(256) NOT NULL,
  `CourseCode` varchar(256) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `courses` (`ID`, `Name`, `CourseCode`) VALUES
(1, 'Computer programming II', 'Csc 201'),
(2, 'Introduction to file procesing', 'Csc 204'),
(3, 'Introduction to the internet', 'Int 201'),
(4, 'Linear algebra II', 'Mth 205'),
(5, 'Real Analysis I', 'Mth 207'),
(6, 'Numeric Analysis', 'Mth 209'),
(7, 'Nigerian people and culture', 'Gst 201');

CREATE TABLE IF NOT EXISTS `scores` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `StudentID` int(11) NOT NULL,
  `CourseID` int(11) NOT NULL,
  `Score` int(11) NOT NULL,
  `CourseUnit` int(11) NOT NULL,
  `Grade` varchar(256) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

INSERT INTO `scores` (`ID`, `StudentID`, `CourseID`, `Score`, `CourseUnit`, `Grade`) VALUES
(1, 1, 1, 45, 3, 'D'),
(2, 1, 2, 57, 2, 'C'),
(3, 1, 3, 34, 3, 'F'),
(4, 1, 4, 60, 2, 'B'),
(5, 1, 5, 76, 3, 'A'),
(6, 1, 6, 42, 2, 'E'),
(7, 1, 7, 80, 2, 'A');

CREATE TABLE IF NOT EXISTS `grading` (
  `ScoreMinPercent` int(11) NOT NULL AUTO_INCREMENT,
  `ScoreMaxPercent` int(11) NOT NULL,
  `Grade` varchar(256) NOT NULL,
  `GradePoints` int(11) NOT NULL,
  PRIMARY KEY (`ScoreMinPercent`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=77 ;

INSERT INTO `grading` (`ScoreMinPercent`, `ScoreMaxPercent`, `Grade`, `GradePoints`) VALUES
(40, 44, 'E', 1),
(45, 49, 'D', 2),
(50, 59, 'C', 3),
(60, 69, 'B', 4),
(70, 100, 'A', 5),
(71, 39, 'F', 0);
于 2012-04-15T14:35:13.797 に答える