sql >> データベース >  >> RDS >> Mysql

別のテーブルの複数の行を参照する外部キー

    これに対する通常の解決策は、交差テーブルを作成することです。

    CREATE TABLE vehicles_owned
    (
      o_id INT,
      v_id INT,
      PRIMARY KEY (o_id, v_id),
      FOREIGN KEY (o_id)
        REFERENCES owners (o_id),
      FOREIGN KEY (v_id)
        REFERENCES vehicles (v_id)
    );
    

    次に、v_idを削除します ownersから 。

    このテーブルでは、各ownersが許可されます 複数のvehiclesを所有する 、および各vehicles 複数のownersを持つ 。車両ごとに1人の所有者の制約を適用する場合は、 UNIQUEを追加します vehicles_owned.v_idへのインデックス 。

    編集:もちろん、車両ごとに1人の所有者の制約を適用する場合は、o_idを追加することもできます。 vehiclesへ 外部キーとして、交差テーブルを気にしないでください。




    1. sql sudoの再起動中にjenkinsが失敗します:ttyが存在せず、askpassプログラムが指定されていません申し訳ありませんが、再試行してください。

    2. オンラインホテル予約で競合状態を防ぐ方法

    3. SQL Server 2008 一連の日時を生成する

    4. PHPおよびMYSQLを使用して、mysqlデータベースのジャンク文字をアラビア文字と照合する方法