私はデータベース設計とMYSQLのために独学です。私の質問を見ていただきありがとうございます。私は現在、データベースがmySQL
に次のようになります持っています:他の一意の制約を持つ代理キーテーブルの作成
私は複合キーを使用した理由は、私がOwner
とDevName
ユニークなすべての時間を維持したいです。 私が見ることができる1つの問題は、常に2つの外部キーを使用する必要があることです。Data1
テーブルが正規化されていません。
私はこのように見て、サロゲートキーテーブルを持つ別のテーブルを作成しました。
これは大丈夫見ていますか?私は、新しいテーブルを作ることは本当に良いアイデアであることを確認していない...
は、任意のOwner
と、このようなユニークなDevName
の組み合わせを保ち、代理キーを持つ単一のテーブルにそれらを作るためにあるの?:
ありがとうございました。ああ、私はクエリが 'id'、' owner'、 'devname'の組み合わせをユニークにしていると思っていました。しかし、それは実際にうまくいく:)ありがとう。 「ユニークインデックス」と「ユニークキー」は同じですか?違いはありません? –
はい、MySQLと同じです。 (他のデータベースでは、一意のCONSTRAINTと一意のINDEXを区別します。たとえば、Oracleでは一意でないインデックスを使用して一意の制約を適用できますが、(MySQLの)InnoDBストレージエンジンはそれを行いません。 MySQLでは、これらの2つのステートメントは同等です: 'ALTER TABLE foo ADD CONSTRAINT foo_UX1 UNIQUE KEY(bar、baz)'と 'CREATE INDEX foo_UX1 ON foo(bar、baz)'。 – spencer7593
ありがとう多く! –