* ナチュラルキーよりサロゲートキー
この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [SQL] [Postgres] [MS SQL Server]
RDBMS における主キーや参照整合性制約の外部キーは、ナチュラルキーよりもサロゲートキーを使う方がより変更に強くなる。
要するに、顧客コードとは別にシステムで振り出すIDを格納するカラムを作れということ。参照整合性制約を作成するときにも、サロゲートキーの方を使う。
Web+DB press (Vol.21)
発売日: 2004/06
amazon で詳しく見る bk1で詳しく見る
Web+DB Press の Vol.21 に詳しく書いてある。
顧客コードのフォーマットは変わるかもしれないから。変わってしまった場合、DBの再設計が必要だったり、データの整合性が失われたり、過去のデータとの比較ができなくなったりする。
それ以後、顧客コードなどがあってもシステム側で振り出すユニークなIDを格納するカラムを使うようになった。
- ナチュラルキー
顧客コードなどの、ビジネスにおいて自然に発生するキー。自然キーともいう。- サロゲートキー
レコードを一意に特定するためにシステムが振り出すキー。アイデンティファイア (Identifier) ともいう。Postgres だったらシリアル型、MS SQL Server だったら IDENTITY を使うのが簡単。要するに、顧客コードとは別にシステムで振り出すIDを格納するカラムを作れということ。参照整合性制約を作成するときにも、サロゲートキーの方を使う。
- なぜサロゲートキーを使う方が良いのか
![Web+DB press (Vol.21) Web+DB press (Vol.21)](http://images-jp.amazon.com/images/P/4774120545.09.MZZZZZZZ.jpg)
発売日: 2004/06
amazon で詳しく見る bk1で詳しく見る
Web+DB Press の Vol.21 に詳しく書いてある。
顧客コードのフォーマットは変わるかもしれないから。変わってしまった場合、DBの再設計が必要だったり、データの整合性が失われたり、過去のデータとの比較ができなくなったりする。
- システム側で振り出したキーを使えと教えられたなあ
そういえばDB設計をし始めた頃、﹁システム側で必ずキーを振り出せ﹂と尊敬する先輩から教えられたなあ。そのときはサロゲートキーという言葉ではなく、﹁システム側で振り出すキー﹂という表現だったけど。それ以後、顧客コードなどがあってもシステム側で振り出すユニークなIDを格納するカラムを使うようになった。
- 参考
このメモは L'eclat des jours(2005-01-07) http://arton.no-ip.info/diary/20050107.html#p01 に触発されて書いた。
すべての記事の見出し (全1029件)
●すべての記事の見出し (カテゴリ別表示)
●すべての記事の見出し (時系列順で表示)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。
●.net (57件) ●2ch (19件) ●amazon (5件) ●Apache (22件) ●bash (13件) ●Bookmarklet (9件) ●C# (45件) ●chalow (18件) ●ChangeLog メモ (20件) ●coLinux (2件) ●CSS (5件) ●Delphi (5件) ●DVD (6件) ●Excel (1件) ●F-ZERO (4件) ●FF12 (31件) ●ftp (8件) ●Google (21件) ●gpg (7件) ●HTML (19件) ●http (19件) ●IE(10件) ●IIS (4件) ●iPod (2件) ●JavaScript (14件) ●Linux (63件) ●MCP (6件) ●Mozilla (14件) ●MS SQL Server (30件) ●MySQL (4件) ●Namazu (3件) ●PC(48件) ●Perl (58件) ●PHP (2件) ●Postgres (36件) ●proftpd (2件) ●qmail (1件) ●RFC (4件) ●RSS (33件) ●Ruby (15件) ●samba (3件) ●sonic64.com (6件) ●SQL (15件) ●Squid (3件) ●ssh (7件) ●Subversion (3件) ●unix (31件) ●VSS (2件) ●Windows (34件) ●winny (9件) ●XML (9件) ●xyzzy (17件) ●おいでよ どうぶつの森 (19件) ●お菓子 (5件) ●アスキーアート (13件) ●アニメ (9件) ●クレジットカード (2件) ●ゲーム (120件) ●シェルスクリプト (18件) ●シレン2(8件) ●セキュリティ (9件) ●ソフトウェア (21件) ●デザインパターン (2件) ●ネットワーク (30件) ●バックアップ (17件) ●プログラミング (14件) ●マリオカートDS(3件) ●メール (26件) ●メモ (116件) ●ラーメン (11件) ●音楽 (59件) ●給油 (3件) ●三国志大戦 (13件) ●車 (7件) ●書斎 (4件) ●食 (30件) ●買い物 (17件) ●簿記 (8件) ●本 (32件) ●漫画 (9件) 直近30日分の記事 2007-04-23 (Mon) ●PC: 開発用の新PC東芝EQUIUM 5170のメモ 2007-03-07 (Wed) ●Mozilla: Mozilla Thunderbird で引用の色つき表示と引用符変更 2007-02-27 (Tue) ●ソフトウェア: Excel: Excel でシートを自動縮小して最適な横幅で印刷する 2007-01-17 (Wed) ●本: ソフトウェア見積りを読了 2007-01-15 (Mon) ●メモ: お年玉付き年賀状の当選番号 平成19年 2007-01-14 (Sun) ●本: クレジットカード: クレジットカードのごほうびを読了 2007-01-08 (Mon) ●本: デッドラインを読了 2006-12-01 (Fri) ●アニメ: DVD: 機動戦士ガンダム0083第一話 ガンダム強奪を視聴 2006-11-22 (Wed) ●メモ: ブックオフの会員カードとポイントがツタヤTポイントに移行 2006-11-20 (Mon) ●ソフトウェア: OpenOffice.org Calc でセル内で改行する 2006-11-19 (Sun) ●クレジットカード: メモ: すべての買い物が1%割引になるクレジットカード P-One カードを申し込んだ 2006-09-30 (Sat) ●メモ: 忙しいとメモ書かなくなっちゃうけど 誰にだって一、二度はあること 2006-08-29 (Tue) ●MS SQL Server: SQL: MS SQL Server でDBから SQL スクリプトを生成する手順とオプション 2006-08-04 (Fri) ●ゲーム: 8月4日はレイストーム作戦発動日 - Operation Raystorm 2006-07-27 (Thu) ●メモ: 買い物: ダイソーの157円ストップウォッチの精度を測る 2006-07-23 (Sun) ●本: 書斎: 立花隆の机は幅200cm、奥行き100cmで45万円 2006-07-17 (Mon) ●ゲーム: スーパーソニックの壁紙 2006-07-10 (Mon) ●本: 書斎: インターネット書斎術を読了 2006-07-06 (Thu) ●本: 書斎: リンボウ先生の書斎のある暮らしを読了 2006-07-03 (Mon) ●メモ: 書斎: 書斎を作る 2006-06-29 (Thu) ●食: ボウモア・シングルセレクト シングルモルトウイスキーを飲む 2006-06-28 (Wed) ●ネットワーク: http: HTML: robots.txt でロボット避け 2006-06-27 (Tue) ●本: Google: グーグル - Google 既存のビジネスを破壊する を読了 2006-06-25 (Sun) ●メモ: シグマ Σ の意味と計算方法 2006-06-19 (Mon) ●ネットワーク: PC: BUFFALO LSW-TX-24NSR 24ポートスイッチングハブを購入 2006-06-18 (Sun) ●ゲーム: FF12: ヤズマット討伐完了 2006-06-15 (Thu) ●Windows: unix: cygrunsrv が CPU を消費して Windows Update できない件の対処 2006-06-11 (Sun) ●音楽: メモ: 星の世界と賛美歌312番﹁いつくしみ深き﹂は同じ旋律 2006-06-01 (Thu) ●メモ: 簿記: 電卓のGTと M+ MRC キーの使い方 2006-05-30 (Tue) ●メモ: 至上命題ではなく至上命令 プロファイル 斎藤 宏明。エンジニアです。宇都宮市に住んでいます。 リンク ●そらはや情報 ●禁断の壷2ちゃんねるターボ用 proxy 自動設定ファイル ●Planet .NET Japan RSS ●
記事全文入りRSS (直近数日分)
●
記事全文入り RSS (全記事分)
スポンサードリンク
Powered by
☆さくらインターネット☆
●.net (57件) ●2ch (19件) ●amazon (5件) ●Apache (22件) ●bash (13件) ●Bookmarklet (9件) ●C# (45件) ●chalow (18件) ●ChangeLog メモ (20件) ●coLinux (2件) ●CSS (5件) ●Delphi (5件) ●DVD (6件) ●Excel (1件) ●F-ZERO (4件) ●FF12 (31件) ●ftp (8件) ●Google (21件) ●gpg (7件) ●HTML (19件) ●http (19件) ●IE(10件) ●IIS (4件) ●iPod (2件) ●JavaScript (14件) ●Linux (63件) ●MCP (6件) ●Mozilla (14件) ●MS SQL Server (30件) ●MySQL (4件) ●Namazu (3件) ●PC(48件) ●Perl (58件) ●PHP (2件) ●Postgres (36件) ●proftpd (2件) ●qmail (1件) ●RFC (4件) ●RSS (33件) ●Ruby (15件) ●samba (3件) ●sonic64.com (6件) ●SQL (15件) ●Squid (3件) ●ssh (7件) ●Subversion (3件) ●unix (31件) ●VSS (2件) ●Windows (34件) ●winny (9件) ●XML (9件) ●xyzzy (17件) ●おいでよ どうぶつの森 (19件) ●お菓子 (5件) ●アスキーアート (13件) ●アニメ (9件) ●クレジットカード (2件) ●ゲーム (120件) ●シェルスクリプト (18件) ●シレン2(8件) ●セキュリティ (9件) ●ソフトウェア (21件) ●デザインパターン (2件) ●ネットワーク (30件) ●バックアップ (17件) ●プログラミング (14件) ●マリオカートDS(3件) ●メール (26件) ●メモ (116件) ●ラーメン (11件) ●音楽 (59件) ●給油 (3件) ●三国志大戦 (13件) ●車 (7件) ●書斎 (4件) ●食 (30件) ●買い物 (17件) ●簿記 (8件) ●本 (32件) ●漫画 (9件) 直近30日分の記事 2007-04-23 (Mon) ●PC: 開発用の新PC東芝EQUIUM 5170のメモ 2007-03-07 (Wed) ●Mozilla: Mozilla Thunderbird で引用の色つき表示と引用符変更 2007-02-27 (Tue) ●ソフトウェア: Excel: Excel でシートを自動縮小して最適な横幅で印刷する 2007-01-17 (Wed) ●本: ソフトウェア見積りを読了 2007-01-15 (Mon) ●メモ: お年玉付き年賀状の当選番号 平成19年 2007-01-14 (Sun) ●本: クレジットカード: クレジットカードのごほうびを読了 2007-01-08 (Mon) ●本: デッドラインを読了 2006-12-01 (Fri) ●アニメ: DVD: 機動戦士ガンダム0083第一話 ガンダム強奪を視聴 2006-11-22 (Wed) ●メモ: ブックオフの会員カードとポイントがツタヤTポイントに移行 2006-11-20 (Mon) ●ソフトウェア: OpenOffice.org Calc でセル内で改行する 2006-11-19 (Sun) ●クレジットカード: メモ: すべての買い物が1%割引になるクレジットカード P-One カードを申し込んだ 2006-09-30 (Sat) ●メモ: 忙しいとメモ書かなくなっちゃうけど 誰にだって一、二度はあること 2006-08-29 (Tue) ●MS SQL Server: SQL: MS SQL Server でDBから SQL スクリプトを生成する手順とオプション 2006-08-04 (Fri) ●ゲーム: 8月4日はレイストーム作戦発動日 - Operation Raystorm 2006-07-27 (Thu) ●メモ: 買い物: ダイソーの157円ストップウォッチの精度を測る 2006-07-23 (Sun) ●本: 書斎: 立花隆の机は幅200cm、奥行き100cmで45万円 2006-07-17 (Mon) ●ゲーム: スーパーソニックの壁紙 2006-07-10 (Mon) ●本: 書斎: インターネット書斎術を読了 2006-07-06 (Thu) ●本: 書斎: リンボウ先生の書斎のある暮らしを読了 2006-07-03 (Mon) ●メモ: 書斎: 書斎を作る 2006-06-29 (Thu) ●食: ボウモア・シングルセレクト シングルモルトウイスキーを飲む 2006-06-28 (Wed) ●ネットワーク: http: HTML: robots.txt でロボット避け 2006-06-27 (Tue) ●本: Google: グーグル - Google 既存のビジネスを破壊する を読了 2006-06-25 (Sun) ●メモ: シグマ Σ の意味と計算方法 2006-06-19 (Mon) ●ネットワーク: PC: BUFFALO LSW-TX-24NSR 24ポートスイッチングハブを購入 2006-06-18 (Sun) ●ゲーム: FF12: ヤズマット討伐完了 2006-06-15 (Thu) ●Windows: unix: cygrunsrv が CPU を消費して Windows Update できない件の対処 2006-06-11 (Sun) ●音楽: メモ: 星の世界と賛美歌312番﹁いつくしみ深き﹂は同じ旋律 2006-06-01 (Thu) ●メモ: 簿記: 電卓のGTと M+ MRC キーの使い方 2006-05-30 (Tue) ●メモ: 至上命題ではなく至上命令 プロファイル 斎藤 宏明。エンジニアです。宇都宮市に住んでいます。 リンク ●そらはや情報 ●禁断の壷2ちゃんねるターボ用 proxy 自動設定ファイル ●Planet .NET Japan RSS ●
![RSS RSS](/img/rss.png)
![RSS full archive RSS full archive](/img/rss.png)
![](http://www14.a8.net/0.gif?a8mat=ZYT5C+7BR1RM+D8Y+61C2Q)