- - PR -
主キーの型について(varchar?or char?)
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-10-02 22:54
number型という選択肢はもちろんあると思います。
ただ、今回はchar?varchar?の選択肢しかない前提で 質問をさせていただいております。 | ||||||||
|
投稿日時: 2007-10-02 23:28
そうでしたね。
ただ、前の投稿で、
とあったので、なぜ、この2つに限定するのかが気になってしまったのです(^^; #主キーが文字列というのは、個人的にはかなり抵抗ある設計なので。 [ メッセージ編集済み 編集者: flatline 編集日時 2007-10-02 23:28 ] | ||||||||
|
投稿日時: 2007-10-03 10:00
私はvarchar派です。
理由は他の主キーでない項目がvarcharだから、 charとvarcharとの混在で発生するバグを少なくする。 | ||||||||
|
投稿日時: 2007-10-03 10:46
るぱんです。
ID型のドメインとしておいて、 char項目にintを突っ込むのは邪道でしょうか・・・? | ||||||||
|
投稿日時: 2007-10-03 14:47
主キーのデータ型を何にするか?という話であれば、
主キーに業務上の属性を持たせるかどうか、の判断が重要です。 そこが決まれば、後は自然と決まると思います。 ※項目のデータ型は、キーかどうかに関係無く決められると言う前提です。
結局どちらを採用しても一長一短ってことですかね。 あ、全部charという選択肢は残っているか・・・ | ||||||||
|
投稿日時: 2007-10-03 21:11
「charとvarcharの混在で発生するバグを少なくする。」
混在させるとバグが発生する可能性が高まりますでしょうか? 「経験上、varchar項目の右余白は見つけにくい不具合になることがあります。」 こちらの方が重大なバグになると考えますが、どうでしょうか? | ||||||||
|
投稿日時: 2007-10-03 23:11
どうでしょうかと聞かれても、そうならないようTRIMすれば済むことでは? それにデータ型に関しては要件なり仕様で決定されるため、そこで迷う必要はないのでは | ||||||||
|
投稿日時: 2007-10-04 00:35
はじめまして
ですが、 よくあるパターンとして、ホストからHALFTなり経由して データ連携するパターンでホストの固定長のデータをそのままCHARの桁数として 取り込むこみテーブル定義とする事をよくみかけます。 その場合に末尾にスペースがあって、ST障害の原因になったりする例を CS時代からいやというほど見ています。 原因はどこかでTrimされていたりされていなかったりで、統一性の ない実装が原因なのですが、なんとなく、CHARのプライマリーキーには 嫌悪感があるのは私だけでしょうか?CHARなら、末尾スペースのデータは 禁止にしてほしい。。。 |