データベース テーブルを設計するときは、エンティティ間のさまざまな種類の関係を実装する方法を理解することが重要です。この記事では、1 対 1、1 対多、および多対多のリレーションシップを実装するための概念と手法について詳しく説明します。
1 対 1 の関係では、あるテーブルの行は別のテーブルの行に一意に関連付けられます。この関係を実装するには、「1 つの」側を表すテーブルの主キー列を参照する「多」側を表すテーブル内に外部キー列を作成します。さらに、重複関係を防ぐために、外部キー列には一意の制約が適用されます。
<code>学生表:学生ID,姓名,地址ID 地址表:地址ID,地址,城市,邮政编码,学生ID</code>
1 対多のリレーションシップでは、1 つのテーブルの 1 つの行を別のテーブルの複数の行に関連付けることができます。これを行うには、「1 つの」側を表すテーブルの主キー列を参照する「多」側を表すテーブルに外部キー列を含めます。
<code>教师表:教师ID,姓名 课程表:课程ID,课程名称,教师ID</code>
多対多のリレーションシップでは、1 つのテーブル内の複数の行を別のテーブル内の複数の行に関連付けることができます。これを実現するには、2 つの外部キー列を含む結合テーブルを作成し、1 つは関連テーブルの各主キーを参照します。
<code>学生表:学生ID,姓名 课程表:课程ID,名称,教师ID 学生课程表:课程ID,学生ID</code>
関連データを効率的に取得するには、外部キー関係に基づいてテーブル間の結合を実行します。
<code>-- 获取特定课程中的学生: SELECT s.student_id, 姓名 FROM 学生课程表 sc INNER JOIN 学生表 s ON s.student_id = sc.student_id WHERE sc.class_id = X -- 获取特定学生的课程: SELECT c.class_id, 名称 FROM 学生课程表 sc INNER JOIN 课程表 c ON c.class_id = sc.class_id WHERE sc.student_id = Y</code>
以上がデータベース設計で 1 対 1、1 対多、および多対多の関係を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。