- PR -

主キーの型について(varchar?or char?)

投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2007/05/01
投稿数: 35
投稿日時: 2007-10-02 22:54
number型という選択肢はもちろんあると思います。

ただ、今回はchar?varchar?の選択肢しかない前提で
質問をさせていただいております。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2007-10-02 23:28
そうでしたね。
ただ、前の投稿で、

引用:

とはいえ、業務用件の考慮の前に、
キーの型にcharとvarcharのどちらを採用するかの最低限の指針は
必要かと思われます。



とあったので、なぜ、この2つに限定するのかが気になってしまったのです(^^;

#主キーが文字列というのは、個人的にはかなり抵抗ある設計なので。



[ メッセージ編集済み 編集者: flatline 編集日時 2007-10-02 23:28 ]
jama
常連さん
会議室デビュー日: 2006/09/12
投稿数: 45
投稿日時: 2007-10-03 10:00
私はvarchar派です。
理由は他の主キーでない項目がvarcharだから、
charとvarcharとの混在で発生するバグを少なくする。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-10-03 10:46
るぱんです。

ID型のドメインとしておいて、
char項目にintを突っ込むのは邪道でしょうか・・・?
こあら
大ベテラン
会議室デビュー日: 2007/06/26
投稿数: 157
投稿日時: 2007-10-03 14:47
主キーのデータ型を何にするか?という話であれば、
主キーに業務上の属性を持たせるかどうか、の判断が重要です。

そこが決まれば、後は自然と決まると思います。

※項目のデータ型は、キーかどうかに関係無く決められると言う前提です。



引用:

経験上、varchar項目の右余白は見つけにくい不具合になることがあります。



引用:

charとvarcharとの混在で発生するバグを少なくする。



結局どちらを採用しても一長一短ってことですかね。
あ、全部charという選択肢は残っているか・・・
未記入
常連さん
会議室デビュー日: 2007/05/01
投稿数: 35
投稿日時: 2007-10-03 21:11
「charとvarcharの混在で発生するバグを少なくする。」

混在させるとバグが発生する可能性が高まりますでしょうか?

「経験上、varchar項目の右余白は見つけにくい不具合になることがあります。」

こちらの方が重大なバグになると考えますが、どうでしょうか?
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2007-10-03 23:11
引用:

未記入さんの書き込み (2007-10-03 21:11) より:
「charとvarcharの混在で発生するバグを少なくする。」
混在させるとバグが発生する可能性が高まりますでしょうか?
「経験上、varchar項目の右余白は見つけにくい不具合になることがあります。」
こちらの方が重大なバグになると考えますが、どうでしょうか?



どうでしょうかと聞かれても、そうならないようTRIMすれば済むことでは?
それにデータ型に関しては要件なり仕様で決定されるため、そこで迷う必要はないのでは






teto
ベテラン
会議室デビュー日: 2002/07/31
投稿数: 61
投稿日時: 2007-10-04 00:35
はじめまして
引用:
APバグの潜在を避けるという観点から、
主キーのコード設計上はcharを前提に進めることが、ベターである。


ですが、
よくあるパターンとして、ホストからHALFTなり経由して
データ連携するパターンでホストの固定長のデータをそのままCHARの桁数として
取り込むこみテーブル定義とする事をよくみかけます。
その場合に末尾にスペースがあって、ST障害の原因になったりする例を
CS時代からいやというほど見ています。

原因はどこかでTrimされていたりされていなかったりで、統一性の
ない実装が原因なのですが、なんとなく、CHARのプライマリーキーには
嫌悪感があるのは私だけでしょうか?CHARなら、末尾スペースのデータは
禁止にしてほしい。。。

スキルアップ/キャリアアップ(JOB@IT)