2011-09-15 13 views
5

有効な通貨コードを含むテーブルがあります。たとえば、3文字のISO通貨コードではなく、主キーとして数値を使用することを選択しています。参照表に数値のPK識別列の値に0を含める必要がありますか?

このCurrencyIdカラムにはゼロで始まる値が含まれていると一般的に合意しています。私たちの主な通貨は米ドルであるため、0の値で最初のポジションを要求しています。

私の考えでは、いくつかの言語が数字を0に初期化し、実際に割り当てられていないときに、意図せずにUSDに設定される可能性があります。

私はすべて濡れていますか?私はを1からUSDに割り当てることを好むでしょう。

+2

あなたが決めたものは何でも - どこかに明確に文書化し、あなたが選んだ解決策についてすべての開発者とDBAから同意を得てください!また、「実際の」値として「0」を使用すると、いつでも、たとえば「不明」または「未定義」のプレースホルダ値として「-1」を指定し、この値をデフォルトとして使用するようにこのテーブルを参照する列を設定します。 –

+2

@Chad - あなたに同意します。 [この質問には列挙型についての同様の議論があります](http://stackoverflow.com/questions/7257409/should-an-enum-start-with-a-0-or-a-1/7257458#7257458) –

+1

ええ、「私は濡れていますか? ?? – AakashM

答えて

3

実際のIDは関係ありません。 0(またはその点では1)から始めることは、ユーザーにとって意味がないため、完全に任意です。これは、システムによって参照としてのみ使用されます。それが0か1か4,536,901のどちらで始まるかは重要な設計上の決定ではありません。

あなたが提起する問題は100%有効です。 0から始まると副作用を引き起こす可能性があり、その中には微妙で追跡が困難なバグとして終わるものもあります。これを避けるとからまではゼロからの番号付けを始めるという欲望/欲望の欲望に対する誰の反論よりも重要です。

+1

+1、短いバージョン:ちょうど1からCで配列をやっていない –

関連する問題