タグ付けされた質問 「surrogate-keys」

7
代理キーをユーザーに公開する必要がありますか?
多くの場合、自然キーを持たないテーブルでは、ユーザーが一意に生成された識別子を保持できると便利です。テーブルに代理主キーがある場合(そして、そのような場合は必ず期待します)、そのキーをユーザーに公開する必要がありますか、その目的で別のフィールドを使用する必要がありますか? サロゲートキーを公開しない理由の1つは、レコード間の関係を保持する操作を実行できないが、特定の種類の削除/再挿入、1つのデータベースからデータをコピーする多くの方法など、キー値を変更することです他など 代理キーを公開する主な利点は、とにかく持っているフィールドを簡単に使用できることです。 どのような状況で、代理キーをユーザーに直接公開する方がよいでしょうか?

4
これらの特定のテーブルには代理キーが必要ですか?
バックグラウンド このテーブルがあります +-------------------------+ +------------------------+ |Airport | |Country | |-------------------------| |------------------------| |airport_code string (PK) | |country_code string (PK)| |address string | |name string | |name string | +------------------------+ +-------------------------+ +-------------------------+ |Currency | |-------------------------| |currency_code string (PK)| |name string | +-------------------------+ airport_codeは、IATA(国際航空運送協会)の 空港コードです。飛行機で旅行する場合は、荷物タグで確認できます。 country_codeはISO 3166-1 A3標準の国コードです。オリンピックで見ることができます。 currency_codeは、IS0 417標準の3文字の通貨コードです。国際通貨交換の表示板で確認できます。 ご質問 これらの自然なPKは十分ですか? 業界全体で受け入れられているPKにとって十分な世界的に尊敬されている標準を使用していますか? この表には、何があっても代理変数が必要ですか?

2
「全代理」をサポートする正規のソースはありますか?
バックグラウンド 「すべて-PK-必須被サロゲート」のアプローチは、中には存在しないコッドのリレーショナル・モデルまたは任意のSQL標準(ANSI、ISOまたは他)。 正規の本もこの制限を回避しているようです。 Oracle独自のデータディクショナリ方式では、一部のテーブルでは自然キーを使用し、他のテーブルでは代理キーを使用します。これらの人々はRDBMSの設計について1つか2つ知っている必要があるので、これについて触れます。 PPDM(Professional Petroleum Data Management Association)は、同じ標準的な本が推奨する次のことを推奨しています。 次の場合は、代理キーを主キーとして使用します。 自然キーやビジネスキーはありません 自然キーまたはビジネスキーが不適切(頻繁に変更) レコードを挿入する時点では、自然キーまたはビジネスキーの値は不明です。 複数列の自然キー(通常はいくつかのFK)が3列を超えるため、結合が冗長になります。 また、自然なキーは不変である必要があると述べている正規のソースを見つけていません。私が見つけたのは、それらが非常にエスタブルである必要があるということです。 これらの人々はRDBMSの設計についてもある程度知っている必要があるため、PPDMについて触れます。 「全代理」アプローチの起源は、いくつかのORMフレームワークからの推奨に由来するようです。 このアプローチでは、多くのビジネス分析を行う必要がなく、SQLコードの保守性と読みやすさを犠牲にして、迅速なデータベースモデリングが可能になるのは事実です。すべてのテーブルを結合する必要があるなどの日常的なタスクを犠牲にして、将来発生する可能性のあるものや発生しない可能性があるもの(自然なPKが変更されたため、RDBMSカスケード更新機能を使用する必要があります)クエリを実行し、データベース間でデータをインポートするためのコードを記述する必要があります。それ以外の点では非常に順調な手順です(PK衝突を回避する必要があり、事前にステージ/同等テーブルを作成する必要があるため)。 他の議論は、整数に基づくインデックスはより高速ですが、それはベンチマークでサポートされなければならないということです。明らかに、長く変化するvarcharはPKには適していません。しかし、短い固定長のvarcharに基づくインデックスは、整数とほぼ同じくらい高速です。 質問 -「all-PK-must-be-surrogates」アプローチをサポートする正規のソースはありますか? -Coddのリレーショナルモデルは新しいリレーショナルモデルに置き換えられましたか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.