ホームページ  >  記事  >  データベース  >  MySQL テーブル設計の実践: コース スケジュールと学生のコース選択スケジュールを作成する

MySQL テーブル設計の実践: コース スケジュールと学生のコース選択スケジュールを作成する

WBOY
WBOYオリジナル
2023-07-01 11:33:225811ブラウズ

MySQL テーブル設計の実践: コース スケジュールと学生のコース選択スケジュールの作成

実際のデータベース設計プロセスでは、テーブル設計は重要なリンクの 1 つです。この記事では、履修スケジュールと学生コース選択スケジュールの作成を例に、MySQL テーブル設計の実践経験とスキルを紹介します。データベース管理システムとして MySQL を使用し、コード例を提供します。

  1. コース スケジュールを作成する

コース スケジュールは、コース情報を保存するテーブルです。次の SQL ステートメントを使用して course テーブルを作成できます:

CREATE TABLE course (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  code VARCHAR(10) NOT NULL,
  credits INT NOT NULL,
  department_id INT,
  CONSTRAINT fk_department
    FOREIGN KEY (department_id)
    REFERENCES department (id)
);

上記のコードでは、CREATE TABLE ステートメントを使用して course という名前のテーブルを作成します。テーブルには次のフィールドが含まれます:

  • id: コース ID。整数型で主キーです。 AUTO_INCREMENT キーワードを使用して自動インクリメントします。
  • name: コース名。255 文字を超えない文字列タイプであり、空にすることはできません。
  • code: コース コード。10 文字以内の文字列タイプであり、空にすることはできません。
  • credits: コース クレジット、整数型。空にすることはできません。
  • Department_id: コースが提供される部門の ID、整数型。外部キー制約を設定して、別のテーブルの部門の id フィールドに関連付けます。
  1. 学生コース選択テーブルの作成

学生コース選択テーブルは、学生のコース選択情報を格納するテーブルです。次の SQL ステートメントを使用して、学生コース選択テーブルを作成できます。

CREATE TABLE student_course (
  id INT PRIMARY KEY AUTO_INCREMENT,
  student_id INT,
  course_id INT,
  grade FLOAT,
  CONSTRAINT fk_student
    FOREIGN KEY (student_id)
    REFERENCES student (id),
  CONSTRAINT fk_course
    FOREIGN KEY (course_id)
    REFERENCES course (id)
);

上記のコードでは、CREATE TABLE ステートメントを使用して、student_course という名前のテーブルを作成します。テーブルには次のフィールドが含まれます:

  • id: コース選択 ID。整数型で主キーです。 AUTO_INCREMENT キーワードを使用して自動インクリメントします。
  • student_id: 学生 ID、整数型。外部キー制約を設定し、それを別のテーブル Student の ID フィールドに関連付けます。
  • course_id: コース ID、整数型。もちろん、外部キー制約を設定し、それを別のテーブルの id フィールドに関連付けます。
  • grade: 学生のコース選択の成績。浮動小数点数型です。
  1. データの挿入

テーブル構造を作成した後、サンプル データを挿入してテーブルの設計が正しいかどうかをテストできます。以下にサンプル データの挿入例を示します。

INSERT INTO course (name, code, credits, department_id)
VALUES ('数据库原理', 'CS101', 3, 1),
       ('计算机网络', 'CS201', 3, 1),
       ('操作系统', 'CS301', 4, 1),
       ('数据结构', 'CS401', 3, 1);

INSERT INTO student_course (student_id, course_id, grade)
VALUES (1, 1, 90),
       (1, 2, 85),
       (2, 1, 88),
       (3, 3, 92),
       (4, 4, 75);

上記のコードでは、INSERT INTO ステートメントを使用してテーブルにデータを挿入します。具体的には、4 つのコースに関する情報を course テーブルに挿入し、5 つの学生コース選択のレコードを Student_course テーブルに挿入しました。

  1. データのクエリ

テーブルの設計が完了したら、SELECT ステートメントを使用してテーブル内のデータをクエリできます。一般的なクエリの例を次に示します。

すべてのコースに関する情報のクエリ:

SELECT * FROM course;

指定された学生のコース選択に関する情報のクエリ:

SELECT s.name AS student_name, c.name AS course_name, sc.grade
FROM student_course sc
JOIN student s ON sc.student_id = s.id
JOIN course c ON sc.course_id = c.id
WHERE s.id = 1;

上記のコード例は、 JOIN ステートメント。student_course、student、course の 3 つのテーブルが結合され、学生 ID 1 の学生のコース選択情報がクエリされ、学生の名前、コース名、成績が表示されます。

概要:

この実践的なケースを通じて、コース スケジュールと学生コース選択テーブルの作成方法を学び、コード例を通じてテーブルの作成、データの挿入、データのクエリのプロセスを示しました。 。実際のデータベース設計では、合理的なテーブル設計により、データの保存効率とクエリのパフォーマンスを向上させることができます。テーブル構造を設計するときは、データの正確性と一貫性を確保するために、データ関係、データ型の選択、外部キー制約の設定などの要素を考慮する必要があります。この記事が MySQL テーブルの設計に役立つことを願っています。

以上がMySQL テーブル設計の実践: コース スケジュールと学生のコース選択スケジュールを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。