Surrogate keys
After you have been building databases for a while, surrogate keys become second nature but many people do not know about them so I thought I should devote some time to them. In addition, a constant challenge is choosing between using an int or a uniqueidentifier (i.e. GUID) as a surrogate key and I thought this would be a great forum to get some feedback on when you should use one or the other.
Surrogate keys
One of the more useful database design strategies is to use surrogate keys. The idea is that instead of using, say, a social security number as an ID for people you use a completely artificial key (usually an int , bigint or a uniqueidentifier) called a surrogate key. In the database application, you may display and search on the natural key (social security number in this case) but all joins use the surrogate key.
There are a number of reasons for using surrogate keys but the main reason is to deal with change. Natural keys like social security numbers often change. If you do not plan carefully you may assume that, say, a person’s social security number will never change. Then reality sets in—a person’s social security number can change. Suddenly, you have to propagate that change to everywhere that you refer to a person. What happens when we run out of social security numbers and need to change the format? Suddenly, you have to convert a large amount of data and resize many rows. What happens when your company expands overseas where they have their own national ID system? Suddenly you have to rewrite a lot of code. However, if you had used a surrogate key instead then each of these scenarios would be much easier to deal with.
The other common reasons for using surrogate keys are to do with efficiency. In general, surrogate keys are significantly smaller than natural keys. Thus table rows and indexes will be smaller and comparisons quicker (although bookmarks complicate the picture). Since more data is in each disk page, table scans, index lookups and index scans will all go faster. Similarly, surrogate keys replicate faster and reduce backup times.
However, there are disadvantages to surrogate keys, which some people think outweigh their advantages. Surrogate keys can lead to more joins since a join is required back to a master table to get the natural key for a report. Surrogate keys make ad hoc queries harder to write since more joins are required and users must have a deeper understanding of the data. In addition, surrogate keys require the use of an extra uniqueness constraint instead of just the primary key constraint with an associated loss of efficiency.
I tend to favor the surrogate key approach unless there is a natural key that I think will never change and the key is a reasonable size. However, even in the space of representing detailed information about compiled programs, good natural keys are rare.
Should a surrogate key be an int or uniqueidentifier?
I still struggle with this issue. In a naïve way, an int or a bigint is the obvious choice at 4 or 8 bytes instead of 16 bytes with some nice support for table partitioning in SQL Server 2005. Also, integer based keys can be added sequentially and table appends are typically faster than table inserts. However, replication and database merging complicate the issue.
If there is no row GUID then merge replication will add one. Thus, if you are going to pay the cost anyway it is tempting to use a uniqueidentifier as the key. The disadvantage is that the row size of every table the ID occurs in will increase.
Related to the merge replication issue is the issue of generating keys in the middle or client tier. This is easier with a uniqueidentifier based key than an integer based key. There are numerous strategies for assigning integer key ranges but they complicate the logic and make the system less robust.
I tend to favor using bigint based keys unless I am sure the number of rows will be low. Although it hurts every time I do it. The databases I am working on may contain an unusually large number of rows so int based columns should be sufficient for most people.
Your thoughts please
Does all this match up with your experience? I would be interested in hearing people’s views on surrogate keys and in particular, the int or uniqueidentifier issue.
This posting is provided "AS IS" with no warranties, and confers no rights.
Comments
- Anonymous
October 12, 2005
The comment has been removed - Anonymous
October 20, 2005
The comment has been removed - Anonymous
August 21, 2006
In the case described above.
Why dont use a surrogate key (SID) in a relation table with two foreigns keys to another's tables SID?
You can make a good use of the uniqness of that relation elements to provide functionality over it, like update, delete. Inserts are equally implemented since SID are automatically generated.
I support the use of SID since it gives a object ref-style to table tuples allowing automatic tools to generate functionalities that in other case with must program ad-hoc.
I am actually working on a model based in SIDs in wich you could even perform replication schemes based on info stored on such SID. - Anonymous
June 27, 2007
I have been tempted to use the uniqueidentifier but shy away when I realise that queries off of ints and bigints are much more friendlier than uniqueidentifiers. with the right columns selected in queries it should be the way to go about. Its sad when you are forced to use merge replication in some cases, it becomes difficult managing the same codebase in different environments which may not have replication turned on - Anonymous
June 11, 2009
ヒマだょ…誰かかまってぉ…会って遊んだりできる人募集!とりあえずメール下さい☆ uau-love@docomo.ne.jp - Anonymous
June 13, 2009
カワイイ子ほど家出してみたくなるようです。家出掲示板でそのような子と出会ってみませんか?彼女たちは夕食をおごってあげるだけでお礼にHなご奉仕をしてくれちゃったりします - Anonymous
June 14, 2009
あなたは右脳派?もしくは左脳派?隠されたあなたの性格分析が3分で出来ちゃう診断サイトの決定版!合コンや話のネタにも使える右脳左脳チェッカーを試してみよう - Anonymous
June 15, 2009
The comment has been removed - Anonymous
June 16, 2009
セレブ達は一般の人達とは接する機会もなく、その出会う唯一の場所が「逆援助倶楽部」です。 男性はお金、女性はSEXを要求する場合が多いようです。これは女性に圧倒的な財力があるから成り立つことの出来る関係ではないでしょうか? - Anonymous
June 17, 2009
貴方のオ○ニーライフのお手伝い、救援部でHな見せたがり女性からエロ写メ、ムービーをゲットしよう!近所の女の子なら実際に合ってHな事ができちゃうかも!?夏に向けて開放的になっている女の子と遊んじゃおう - Anonymous
June 20, 2009
家出中でネットカフェやマンガ喫茶にいる女の子たちは、お金が無くなり家出掲示板で今晩泊めてくれる男性を探しています。ご飯を食べさせてあげたり泊めてあげることで彼女たちはHなお礼をしてくれる事が多いようです - Anonymous
June 21, 2009
当サイトは、みんなの「勝ち組負け組度」をチェックする性格診断のサイトです。ホントのあなたをズバリ分析しちゃいます!勝ち組負け組度には、期待以上の意外な結果があるかもしれません - Anonymous
June 22, 2009
男性が主役の素人ホストでは、男性のテクニック次第で女性会員様から高額な謝礼がもらえます。欲求不満な人妻や、男性と出会いが無い女性が当サイトで男性を求めていらっしゃいます。興味のある方はTOPページからどうぞ - Anonymous
June 23, 2009
The comment has been removed - Anonymous
June 24, 2009
The comment has been removed - Anonymous
June 25, 2009
The comment has been removed - Anonymous
June 26, 2009
セレブラブではココロとカラダに癒しを求めるセレブ達と会って頂ける男性を募集しています。セレブ女性が集まる当サイトではリッチな彼女たちからの謝礼を保証、安心して男性はお金、女性は体の欲求を満たしていただけます。無料登録は当サイトトップページからどうぞ - Anonymous
June 27, 2009
家出中でお金が無く、ネットカフェを泊り歩いているSOS少女たちは、家出掲示板で泊めてくれたり遊んでくれる男性を探しています。泊めてあげたりすると彼女たちはHなお礼をしてくれるかもしれません。家出少女と遊びたい方は当サイトはどうぞ - Anonymous
June 28, 2009
あなたの精神年齢を占ってみよう!当サイトは、みんなの「精神年齢度」をチェックする性格診断のサイトです。精神年齢度には、期待以上の意外な結果があるかも??興味がある方はぜひどうぞ - Anonymous
June 29, 2009
The comment has been removed - Anonymous
June 30, 2009
The comment has been removed - Anonymous
July 01, 2009
The comment has been removed - Anonymous
July 02, 2009
恋することって怖くないですか?最近ちょっと臆病になってて…そういうの抜きでえっちなことしたくて… lovely-i0709@docomo.ne.jp優しい人がいたらメール待ってます☆ - Anonymous
July 03, 2009
さあ、今夏も新たな出会いを経験してみませんか?当サイトは円助交際の逆、つまり女性が男性を円助する『逆円助交際』を提供します。逆円交際を未経験の方でも気軽に遊べる大人のマッチングシステムです。年齢上限・容姿・経験一切問いません。男性の方は無料で登録して頂けます。貴方も新たな出会いを経験してみませんか - Anonymous
July 04, 2009
これから家出したい少女や、現在家出中の娘とそんな娘を助けたい人を繋げるSOS掲示板です。10代、20代の女の子が家庭内の問題などでやむなく家出している子が多数書き込みしています。女の子リストを見て彼女たちにアプローチしてみませんか - Anonymous
July 05, 2009
The comment has been removed - Anonymous
July 06, 2009
The comment has been removed - Anonymous
July 07, 2009
素人ホストでは日頃のストレスを発散したい、もう一度恋がしたい、そういた女性が癒しを求めて登録されています。当サイトは癒やされたい女性・寂しい女性を癒やす男性が集うカップリングサイトです - Anonymous
July 08, 2009
The comment has been removed - Anonymous
July 09, 2009
恥ずかしいけどやらしいことしたくてしょうがありません…誰か一緒にしてくれませんか?とりあえず連絡待ってます☆ cute.y.0902@docomo.ne.jp - Anonymous
July 10, 2009
The comment has been removed - Anonymous
July 11, 2009
家出娘や一人で寂しい子が書き込むSOS娘BBSでは彼女たちと遊んであげたり泊めてあげれる、優しい人を募集しています。見返りにHをしてくれる子も多く、いろんな理由がある少女があなたの助けを待っています。 - Anonymous
July 12, 2009
話題の小向美奈子ストリップを盗撮!入念なボディチェックをすり抜けて超小型カメラで撮影した神動画がアップ中!期間限定配信の衝撃的映像を見逃すな - Anonymous
July 13, 2009
The comment has been removed - Anonymous
July 14, 2009
mixiで禁止された「出会い」コミュニティーが復活しているのをご存じですか?当サイトでは規制前の楽しかった頃のミクシーを再現しているという好評を頂いております。会員数も右肩上がりに増えていますので、興味のある方はぜひご覧ください - Anonymous
July 15, 2009
癒されたい女性や、寂しい素人女性を心も体も癒してあげるお仕事をご存じですか?女性宅やホテルに行って依頼主の女性とHしてあげるだけで高額の謝礼を手に入れる事が出来るのです。興味のある方は当サイトTOPページをご覧ください - Anonymous
July 16, 2009
The comment has been removed - Anonymous
July 18, 2009
最近TVや雑誌で紹介されている家出掲示板では、全国各地のネットカフェ等を泊り歩いている家出娘のメッセージが多数書き込みされています。彼女たちはお金がないので掲示板で知り合った男性の家にでもすぐに泊まりに行くようです。あなたも書き込みに返事を返してみませんか - Anonymous
July 19, 2009
あなたの性格を、動物に例えて占っちゃいます。もしかしたらこんな動物かも!?動物占いをうまく使って、楽しい人間関係を築いてください - Anonymous
July 20, 2009
The comment has been removed - Anonymous
July 21, 2009
家出中の女性や泊まる所が無い女性達がネットカフェなどで、飲み放題のドリンクで空腹を満たす生活を送っています。当サイトはそんな女性達をサポートしたいという人たちと困っている女性たちの為のサイトです - Anonymous
July 22, 2009
セレブ女性との割り切りお付き合いで大金を稼いでみませんか?女性に癒しと快楽、男性に謝礼とお互い満たしあえる当サイト、セレブラブはあなたの登録をお待ちしております。 - Anonymous
July 23, 2009
誰か満足させてくれる人いませんか?めんどくさいこと抜きでしよっ♪ gu-gu-m@docomo.ne.jp とりあえずメールして☆ - Anonymous
July 25, 2009
家出をして不安な少女の書込みが当、家出掲示板では増えています。泊まらせてあげたり、一日遊んであげるだけで彼女たちはあなたを神と呼び、精一杯のお礼をしてくれるはずです - Anonymous
July 26, 2009
あなたのゲーマー度を無料ゲーム感覚で測定します。15個の質問に答えるだけの簡単測定で一度遊んでみませんか?ゲームが得意な人もそうでない人もぜひどうぞ。 - Anonymous
July 27, 2009
Hな女性たちは素人ホストを自宅やホテルに呼び、ひとときの癒しを求めていらっしゃいます。当サイトでは男性ホスト様の人員が不足しており、一日3〜4人の女性の相手をするホストもおられます。興味を持たれた方は当サイトにぜひお越しください - Anonymous
July 28, 2009
実は出会い系には…関係者用入り口があるのを知っていますか?広告主やスポンサー用に用意されたIDではサクラや業者が立ち入ることが出来ないようになっているのです。当サイトでは極秘に入手した関係者用URLが公開されています - Anonymous
July 29, 2009
男性はお金、女性は快楽を得る逆援助に興味はありませんか?お金を払っても性的欲求を満たしたいセレブ達との割り切り1日のお付き合いで当サイトでは大金を得ることができます。無料登録なのでアルバイト感覚でOK、詳しくはTOPページでどうぞ。 - Anonymous
July 30, 2009
自分のほむぺ初公開でぇす。やっと完成したのでみんなに見てもらいたくて★カキコしました。意見ある方めぇるまってまぁす。 ggg.nj@docomo.ne.jp - Anonymous
July 31, 2009
セクース好きな女性が集まる★男性との性なる夜を求めた女性達が多数登録しております!セフレ出会いサイト☆セクフレ☆で夏休み中でヒマを持て余している女子○生から、刺激を求めるOLまでみんなまとめてオイシイ関係になっちゃおう - Anonymous
August 01, 2009
夏休みで気軽に家出する女子○生が急増しています。しかし家出したはいいものの泊る所やお金が無い彼女たちは、掲示板などで泊めてくれる男性を探す子も多いようです。当掲示板にも夏休みに入ってから通常の3倍以上のメッセージが寄せられています - Anonymous
August 02, 2009
あなたの真のH度を診断できるHチェッカー!コンパや飲み会で盛り上がること間違いなしのおもしろツールでみんなと盛り上がろう - Anonymous
August 03, 2009
今夏も新たな出会いを経験してみませんか?当サイトは円交の逆、つまり女性が男性を円助する『逆円交際』を提供します。未経験の方でも気軽に遊べる大人のマッチングシステムです。年齢上限・容姿・経験一切問いません。男性の方は無料で登録して頂けます。貴方も新たな出会いを経験してみませんか - Anonymous
August 04, 2009
今最もアツイバイトは人妻とのセフレ契約です。当サイトではお金を払ってでもセフレがほしい人妻が集まり、男性会員様との逆援生活を待っています。当サイトで欲求不満の女性との出会いをしてみませんか - Anonymous
August 05, 2009
素人ホストでは、男性のテクニック次第で女性会員様から高額な謝礼がもらえます。欲求不満な人妻や、男性と出会いが無い女性達が当サイトで男性を求めていらっしゃいます。興味のある方はTOPページからどうぞ - Anonymous
August 06, 2009
さゆのプロフィールが完成しましたぁ。記念すべき初プロフをネットに公開してみました。ドキドキしてるので優しい感想メールしてくれたら心和むかもでぇす po.tomoe.oq@docomo.ne.jp - Anonymous
August 07, 2009
The comment has been removed - Anonymous
August 08, 2009
カワイイ子ほど家出してあそんでみたくなるようです。家出掲示板でそのような子と出会ってみませんか?彼女たちは夕食をおごってあげるだけでお礼にHなご奉仕をしてくれちゃったりします - Anonymous
August 10, 2009
出会ぃも今は逆援助!オンナがオトコを買う時代になりました。当サイトでは逆援希望のセレブ女性が男性を自由に選べるシステムを採用しています。経済的に成功を収めた女性ほど金銭面は豊かですが愛に飢えているのです。興味のある方はどうぞ - Anonymous
August 11, 2009
即ハメセレブは完全無料でご利用できる出会いコミュニティです。今までにない実績で、あなたの希望に合った人をお探しします。毎月考えられない豪華なイベントを開催しているので出会いを保障します - Anonymous
August 12, 2009
夏真っ盛り!女の子は開放的な気分で一人Hしたくてウズウズしてるっ!貴方は女の子のオ○ニーを見て気分を高めてあげてネ!もちろん、お手伝いしてもオッケーだよ!さぁ、今すぐ救援部にアクセスしよっ - Anonymous
August 14, 2009
プロフ見て興味ある方は連絡ください。基本的には携帯依存症なぐらい携帯いじるのとかメールするの好きなのでまずはメアドから交換しましょう。仲良くなったら電話もおっけーなんでよろしくo.natyu.natyu.o@docomo.ne.jp - Anonymous
August 15, 2009
大好評の逆ナンイベントが毎週開催決定!素敵な出会いのきっかけ探し・アイナビにきませんか?積極的な出会いを求める人達なら無料参加OK!あなたもほんの少しの勇気で素敵な彼氏・彼女をGETしちゃおう! - Anonymous
August 16, 2009
夏休みで家出する女の子が急増しています。最初はマンガ喫茶やネットカフェで過ごすことが多いようですが、すぐにお小遣いが無くなり家出掲示板で泊めてくれたり遊んでくれる男性を探す子が多いようです。当サイトはそんな女の子達をサポートしたいという人たちと困っている女性たちの為のサイトです - Anonymous
August 17, 2009
当サイトは、みんなの「玉の輿度」をチェックする性格診断のサイトです。ホントのあなたをズバリ分析しちゃいます!玉の輿度チェッカーの診断結果には、期待以上の意外な結果があるかも - Anonymous
August 19, 2009
毎月10万円を最低ラインとする謝礼を得て、セレブ女性に癒しを与える仕事があります。無料登録した後はメールアプローチを待つだけでもOK、あなたもセレブラブで欲求を満たしあう関係を作ってみませんか - Anonymous
January 07, 2013
Surrogate key advantages are over inflated. Often designers blindly go for surrogate keys when good natural key is already available.