sql >> データベース >  >> Database Tools >> phpMyAdmin

他の2つのテーブルの関係に依存する外部キーを設定するにはどうすればよいですか?

    phpmyadminは使用していませんが、

    から始めます。
    • subject.nameに対する一意の制約、
    • ペア{teachers.name、teachers.subject_id}に対する一意の制約
    • {events.venue、events.subject_id、events.teacher_id}に対する一意の制約
    • ペア{teachers.id、teachers.subject_id}に対する一意の制約。

    最初の3つはアイデンティティと関係があります。最後の1つでは、外部キー制約を使用して{teachers.id、teachers.subject_id}をターゲットにできます。

    一般的な場合、人の名前は一意ではありません。だからあなたはできた 同じ科目を教える同じ名前の2人の教師がいます。この種の問題にどのように取り組むかは、アプリケーションによって異なります。

    次に、外部キー

    • Teachers.subject_idからsubjects.idへ、および
    • {events.teacher_id、events.subject_id}から{teachers.id、teachers.subject_id}まで

    間違った主題の教師をイベントに挿入しようとすると、少なくともエラーが発生します。

    INNODBエンジンを使用する 必要があります 外部キー制約を適用します。他のエンジンはそれらを解析しますが、無視します。

    FOREIGN KEY句とREFERENCES句は、ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name](...)REFERENCES ...(...)を実装するInnoDBstorageエンジンによってサポートされます。セクション14.6.6「InnoDBおよびFOREIGNKEYの制約」を参照してください。他のストレージエンジンの場合、句は解析されますが無視されます。




    1. 構成で定義されているcontroluserの接続が、XAMPPのphpMyAdminで失敗しました

    2. SQL ServerManagementStudioでバッファリングされたポイントが長方形で円ではないのはなぜですか-空間結果

    3. PHPmyAdminを使用してデータベースとテーブルの文字セットを見つける方法は?

    4. Errno 121、書き込みまたは更新時にキーが重複していますか?