web-dev-qa-db-ja.com

データベース内の賢明な/合理的な文字制限は何ですか?人の名前の場合

これは、データベース管理者に関する一般的な質問です。

DB内のフィールドの文字制限に何らかの標準化はありますか?入力するデータの種類がわかっていて、入力するデータを合理的にしたい場合は、名前、電話番号などのデータベース側で文字数制限を指定して、文字数制限を制限することは理にかなっています。しかし、このクレイジーな世界で賢明な限界が何であるかをどうやって知るのでしょうか。多くの例外があります。

私の場合、これは英国の地元企業向けのシステムで、従業員は10〜15人しかいません。したがって、必要に応じて戻って変更することもできますが、最初は合理的な制限を入力したいと思います。

この質問がすでに行われている場合は申し訳ありません。ある場合は、Googleまたは同様の質問で見つけることができませんでした。

5
Coops

その一部は要件に戻っていると思います。どのくらいの名前を保存していますか? 「名前」を別々に保ちたいと思ったことはありませんか(最初、中間、最後など)?複数のミドルネームを処理しますか?

名前を分けたい場合は、名前ごとに50文字で十分だと思います。 (これはほとんどの名前で十分すぎるほどですが、より大きな名前もカバーします。)名前は非常に多様であるため、おそらくCHARよりもVARCHARを使用します。

1つのフィールドにフルネームを入力する場合は、150〜200文字を使用します。

繰り返しますが....それはすべて要件に戻ります...あなたは何が必要ですか?

3
Chris Aldrich

ストレージに許可するものを制御できなくなることはありませんが、VARCHARまたはNVARCHARタイプを使用して文字列を格納すると、それほど重要な質問にはなりません。データが実際に消費するストレージのみを使用するため、ここでは、フィールドの全長ではなく、もう少し寛大になることができます。後でデータ型を変更するという一般的な苦痛を考えると、私はあなたが必要だと思うよりも少し傾くでしょう-あなたが高すぎると推測した場合、結果として無駄なスペースはありませんが、低すぎると推測した場合はいくつかのテーブルがありますメンテナンスが必要です。

より短いフィールド長を選択する特別な理由がない場合は、通常VARCHAR(255)を使用します。実際のデータベースにデータを格納するために使用するタイプに関係なく、プレゼンテーション層で許可されるものと表示フィールドの長さをいつでも制御できることを忘れないでください。したがって、ここでも、過剰に収容しても害はありません。

数値と固定幅フィールドでは、スペースを無駄にしないように、使用すると思われるものをもう少し正確にする必要がありますが、VARCHARフィールドの場合は追加コストはかかりません。

1
SqlRyan