可能性の重複:
Should each and every table have a primary key?主キー&データベースの正規化
私は、データベースの正規化については、学校のプロジェクトに取り組んできました。 私はとの難しさを抱えている主キー テーブルを持っていないテーブルを正規化するには助けを必要とすることは、サブスクリプションのためのテーブルであり、それは構造だが、このようなものです:
itemSubscribed emailAddress
-------------- ------------
1 [email protected]
1 [email protected]
1 [email protected]
2 [email protected]
2 [email protected]
3 [email protected]
お知らせそのitemSubscribed
とemailAddress
値どちらもプライマリキーになることはありません。
この構造は私のコードではうまくいきます。項目Xに更新があるときに電子メールを送ることができますが、先生は正規化されたデータベースを必要とし、1NFには主キーが必要です。
プライマリキーを持つために自動生成されたプライマリキーを作成した場合、すべてのカラムがプライマリキーに依存する必要があるため、3NFを続行できません。
自動生成された主キーは作成する必要がありますか?私は3NFに関して何かを見逃していますか?
Hm、あなたは質問を定義するのを忘れてしまった! – home
プレースホルダのテキストをコピーしようとするほど難しく、最後にピリオドを忘れてしまいました。 – BoltClock
これは閉鎖されているので、答えとして与えることはできませんが、もちろんこれはもう少し遅いですが、あなたが描いているように見えるのはブリッジテーブルです。ブリッジテーブルは非常に頻繁にはありませんが、複合主キーです。 'itemSubscribed'と' emailAddress'カラムを一緒にプライマリキーにすると、重複はなく、3NFになります。自動生成された主キーは、混乱と余分な作業の原因となるだけなので、ブリッジテーブルでやりたい非常に最後のことですが、重複を実際に促します。 – jmoreno