sql >> データベース >  >> RDS >> Sqlserver

整数の代わりに nvarchar(50) を主キーとして使用すると、SQL Server 2005 で罰せられますか?

    データベース設計の主要な「聖戦」の 1 つに遭遇しました。あなたが言及している議論は、RDBMS が存在する限り (私が知る限り) 激怒してきた「サロゲート vs. 自然キー」の議論です。

    議論は本質的に、レコードを一意に記述する実際のデータ (自然キー) を使用するのではなく、代表的なキー (IDENTITY 列などのサロゲート) を使用する必要があるかどうかに帰着します。

    「正解」はないと断言します。パフォーマンス測定はプラットフォームの成果物であり、実験によって評価する必要がありますが、パフォーマンスは主要な関心事ではない可能性があります.

    代理キーの主要な議論であると私が考えるのは、主キーの不変性です。自然キーを使用することを選択した場合は、そのキーが確立された後にそのキーを変更するオプションを放棄します。また、将来のある時点で一意でなくなる可能性も放棄します。これらの理由から、私は通常 (常にではありませんが)、ほとんどのテーブルに代理キーを使用しています。

    しかし、私が述べたように、索引付け戦略と標準形式の遵守についての議論で満たされた非常に長い議論があり、もしよろしければお読みください.

    「代理キーと自然キー」をグーグルで検索します。開始するためのいくつかのリンクを次に示します。

    システム エンジニアリングと RDBMS

    Techrepublic

    Tony Rogerson のブログ

    これがお役に立てば幸いです。



    1. PHPとPDOを使用して単一のMySQLプリペアドステートメントに配列を挿入する方法

    2. PL / SQLでファイルを解凍するにはどうすればよいですか?

    3. mysql全文検索エラー

    4. mysqlで行の値を列に動的に作成する方法