SQL データベース内のすべてのテーブルに主キーを設定する必要があると書かれているのを見たことがあります。ただし、最初の属性に属する別の属性の ID を格納するためだけに使用される多数のテーブルを含むデータベースを作成しました。どちらの場合も、各 ID について複数の言及が必要になるため、主キーには何を使用すればよいでしょうか?
3 に答える
あなたの言っていることが理解できたら 2 つの方法があります
主キーは複合することができます
例えば。CustomerContacts は、両方の列の主キーを持つ CustomnerID と ContactID を持つことができます
あなたが持つことができるように
1,1
1,2
2,2
2,3
しかし、別の Customer2 を Contact2 にリンクすることはできませんでした
もう 1 つの方法はサロゲートで、通常は自動インクリメントです。
CustomerContacts
CustomerContactID, CustomerID, ContactID, now you could have
1,2,2
2,2,2
あなたが望むかもしれないし、望まないかもしれません。
必要なものを選択してください。これまで見てきたことは非常に真実であり、一意のキーがなく、詩的にパフォーマンスの問題に悩まされていることを除けば、「他のユーザーがレコードの問題を変更しました」という問題が発生します。
たとえば、Names のテーブルがあり、Tony がそのテーブルに 2 回含まれているとします。それらの 1 つを削除したいのですが、DBMS はどの Tony を削除する必要があるかをどのように識別しますか? 両方を取り除くか、非常に動揺してベビーカーからおもちゃを投げ出します。
一意のキーを持っていない場合は、最初の通常のフォームに失敗しています。つまり、残りのすべてに別れを告げることができます。
一般に、列「id」を主キーとして使用して、行番号を追跡できます。保存された属性の場合、「stored_attribute_id」という名前の列を持つことができます
あなたの質問はかなり不明確です。主キーは、そのテーブルに対して一意である必要がある列の組み合わせを定義します。エントリが別のテーブルに含まれている場合は、外部キーを調査することをお勧めします