ホームページ >データベース >mysql チュートリアル >データベース設計で 1 対 1、1 対多、および多対多の関係を実装するにはどうすればよいですか?
データベース設計における関係: 1 対 1、1 対多、多対多
データベース テーブルを設計するときは、データの整合性を確保するためにデータ エンティティ間の関係を確立する必要があります。 1 対 1、1 対多、多対多の 3 つの一般的な関係タイプと、それらの実装方法を見てみましょう。
一対一の関係
1 対 1 の関係では、一方のテーブルの各行には、もう一方のテーブルにも対応する一意の行があります。これを実現するには、子テーブルの外部キー列を使用して、親テーブルの主キー列を参照します。例:
<code>学生表:学生ID,名字,姓氏,地址ID 地址表:地址ID,地址,城市,邮政编码,学生ID</code>
アドレス テーブルの外部キー (student_id) は、各アドレスを特定の学生にリンクします。
1 対多の関係
1 対多のリレーションシップでは、「1」側 (親テーブル) の各行が、「多」側 (子テーブル) に対応する複数の行を持つことができます。子テーブルの外部キー列を使用して、親テーブルの主キー列にリンクします。例:
<code>教师表:教师ID,名字,姓氏 课程表:课程ID,课程名称,教师ID</code>
各教師は複数のコースを持つことができますが、各コースは 1 人の教師にのみ属します。カリキュラム内の外部キー (Teacher_id) によって、この関係が確立されます。
多対多の関係
1 つのテーブルの各行が別のテーブルの複数の行に関連付けられる場合、またはその逆の場合、多対多の関係が存在します。これを実現するには、関連する 2 つのテーブル間の関係を保持する結合テーブルを作成します。例:
<code>学生表:学生ID,名字,姓氏 课程表:课程ID,名称,教师ID 学生课程表:课程ID,学生ID</code>
生徒のクラススケジュールでは、どの生徒が各クラスに所属するかを追跡し、その逆も同様です。
関連データのクエリ
これらの関係により、効率的なクエリが可能になります。例:
以上がデータベース設計で 1 対 1、1 対多、および多対多の関係を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。