1

SQL データベース内のすべてのテーブルに主キーを設定する必要があると書かれているのを見たことがあります。ただし、最初の属性に属する別の属性の ID を格納するためだけに使用される多数のテーブルを含むデータベースを作成しました。どちらの場合も、各 ID について複数の言及が必要になるため、主キーには何を使用すればよいでしょうか?

4

3 に答える 3

1

あなたの言っていることが理解できたら 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 を削除する必要があるかをどのように識別しますか? 両方を取り除くか、非常に動揺してベビーカーからおもちゃを投げ出します。

一意のキーを持っていない場合は、最初の通常のフォームに失敗しています。つまり、残りのすべてに別れを告げることができます。

于 2013-05-01T16:25:13.740 に答える
1

一般に、列「id」を主キーとして使用して、行番号を追跡できます。保存された属性の場合、「stored_attribute_id」という名前の列を持つことができます

于 2013-05-01T15:57:29.230 に答える
1

あなたの質問はかなり不明確です。主キーは、そのテーブルに対して一意である必要がある列の組み合わせを定義します。エントリが別のテーブルに含まれている場合は、外部キーを調査することをお勧めします

于 2013-05-01T15:59:01.627 に答える