- ベストアンサー
アクセス2013で自前の自動採番をする時の主キーの
アクセス2013で自前の自動採番をする時の主キーのデータ型を現在、十進型の18桁にしています。 他の人達は、自前の自動採番をする場合、テキスト型でするという質問を他のサイトで見かけた事がありますが、数字で自動採番処理を自前で作成する場合は、どのデータ型が宜しいのでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Microsoft は、オートナンバーの主キーの型を長整数(Long型)にしています。その理由は、整数(Intege型)についで処理速度が速いからです。キーの命は、なんと言っても処理速度。とは言っても、社員テーブルなんかは整数(Intege型)で十分間に合う訳です。でも、私は、そのように細かく使い分ける時代は終わったと思っています。なんでもかんでも主キーは長整数(Long型)で押し通しても問題ないかと思います。ただ、DECIMAL型を用いる意義はほとんどないと思いますよ。
その他の回答 (1)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Access だと通常は Long型でしょう。 理由1、Integerでは心もとない。 理由2、Microsoft のサンプルは Long。 理由3、テキスト型では検索速度が落ちる。 理由4、テキスト型では並び替えに問題が起きる。 理由5、テキスト型では領域を多く使う。 採番そのものは、テーブル「採番台帳」とのワンアクセスです。ですから、その処理速度と型との関連は問題にはならないでしょう。でも、その後の主キーとしての機能を発揮する点ではテキスト型には大きな問題があるのではないでしょうか?で、何ゆえに[十進型の18桁]なんでしょうか? >Decimal は、すべての数値型の中で最もパフォーマンスの低いデータ型です。 (by Microsoft)
補足
ご回答ありがとうございます。 十進型というのは、他のサイトでそれを薦めているところがありましたので、それにしただけです。そこにある説明では、桁数指定と、小数点以下、以上の指定もできるという説明がありました。自動採番には関係ないことかもしれませんが。スピードの点でいうと、Longの方が良いということでしょうか。 Long型というのは、Accessのテーブルの数値型の「フィールドサイズ」のところで言うと、「長整数型」でよろしいのでしょうか。 また、他のテーブルの主キーとリレーションする外部キーも、当然同じデータ型のLong型にしたほうが良いということになりますか?(一応確認のため) よろしくお願いします。
お礼
ご回答ありがとうございました。 とても完結で明快なご説明で、迷わず、主キー、外部キーは全部長整数型にしているところです。 ありがとうございました。