テーブル内の各行を識別できる一意の列がない場合、
私の主キーは、少なくとも 2 つのフィールドのセットになります。
あれは正しいですか?
それが正しければ、関係図を描くときに、主キーを構成する 2 つの属性に下線を引く必要がありますか?
ありがとうございました
テーブル内の各行を識別できる一意の列がない場合、
私の主キーは、少なくとも 2 つのフィールドのセットになります。
あれは正しいですか?
それが正しければ、関係図を描くときに、主キーを構成する 2 つの属性に下線を引く必要がありますか?
ありがとうございました
いくつかの用語を次に示します。
「明らかな」自然キーがない場合、行全体が常にキーとして機能します2。ただし、これが実用的であることはめったになく、そのような場合は通常、行を識別するためだけに代理キーを導入します。
常にではありませんが、既存の自然キーに加えてサロゲートを導入すると便利な場合があります。
ER図は、PK 3が天然か代理か、複合かどうかを明確に識別します。これがどのように見えるかは、使用されている表記法によって異なりますが、PK は通常、グラフィカルに異なる方法で描画され、「PK」で始まる可能性があります。
1つまり、列を削除すると、一意ではなくなります。
2データベース テーブルは、「関係」の数学的概念を物理的に表現したものです。関係が設定されているため、2 つの同一の行を持つ目的はありません。そのため、少なくとも行全体が一意である必要があります (要素がセット内にあるかどうかにかかわらず、セット内で「2 回」になることはありません。マルチセットとは異なります)。
3エンティティ レベルだけではなく、属性がまったく表示されないと仮定します。
あなたの言う通りです。技術的には、主キーと一意のキーは 2 つの異なるものにすることができます。そのエンティティを一意に識別するテーブルまたはエンティティに主キーを設定することもできます。同じテーブルに一意のキー制約を設定できます。これを使用すると、選択した基準に従って、2 つの行が同じプロパティを持つことはなくなります。したがって、同じテーブルに主キーと一意の制約の両方を設定できます。DBで自動生成される主キー列を用意し、一意キー制約を適用するために使用するテーブル内の2つの列を選択するだけです
主キーがない場合、データを識別できますが、パフォーマンスは高くありません。
また、ベスト プラクティスとして、テーブルで primary を使用します。
設定は、自動インクリメント列を主キーとして使用することです