154

認証されていないユーザーが名前などの情報を入力できるようにする単純な Web フォームがあります。フィールドが であるデータベース テーブルと一致するように名前フィールドに 50 文字の制限を与えましたがvarchar(50)、その後疑問に思い始めました。

Text列タイプのようなものを使用する方が適切ですか、それとも名前の長さを合理的な長さに制限する必要がありますか?

私は SQL Server 2005 を使用しています。それがあなたの回答に重要な場合に備えて。

編集:同様の問題に関するこの広範な質問は見当たりませんでした。

4

12 に答える 12

157

UK Government Data Standards Catalogでは、名と姓のそれぞれに 35 文字、フル ネームを保持する 1 つのフィールドに 70 文字を推奨しています。

于 2008-08-27T15:49:46.410 に答える
31

私はこれに遅れていることを知っていますが、他の人が同様の質問で将来ここに来る可能性があるため、とにかくこのコメントを追加します.

ロケールに応じて列のサイズを微調整することに注意してください。まず第一に、人々が移住し、彼らの名前を持っていくという事実を脇に置いて、メンテナンスの悪夢にあなたをセットアップします。

たとえば、これらの追加の姓を持つスペイン人は、英語圏の国に移動して住むことができ、フルネームが使用されることを合理的に期待できます. ロシア人には姓に加えて愛称があり、一部のアフリカの名前はほとんどのヨーロッパの名前よりもかなり長い場合があります.

潜在的な行数を考慮して、各列を合理的にできる限り広くしてください。名、その他の名、姓にそれぞれ 40 文字を使用していますが、問題はありません。

于 2009-02-18T21:03:55.850 に答える
10

私は通常 varchar(255) を使用します (255 は MySQL の varchar 型の最大長です)。

于 2008-08-27T15:43:15.397 に答える
7

1 つのフィールドにフル ネームが含まれる場合、通常は 128 を使用します。最初と最後に 64/64 を別々のフィールドに入力します。

于 2008-08-27T15:43:04.943 に答える
6

@Ian Nelson: 他の人がそこに問題を見ているかどうか疑問に思っています。

分割されたフィールドがあるとしましょう。これは合計 70 文字で、名が 35 文字、姓が 35 文字です。ただし、フィールドが 1 つの場合は、姓と名を区切るスペースが無視され、1 文字短くなります。確かに、それは「たった」1文字ですが、フルネームを入力する人とそうでない人の違いになる可能性があります. したがって、その提案を「名と姓のそれぞれに 35 文字、またはフルネームを保持する 1 つのフィールドに 71 文字」に変更します。

于 2008-08-27T15:55:05.650 に答える
5

英国には、英国の人口の大部分をうまく処理するいくつかの政府基準があります。パスポート局、運転免許局、Deed Poll 局、および NHS です。明らかに、彼らは異なる基準を使用しています。

Deed Poll による名前の変更は 300 文字まで可能です。

名前の長さに法的な制限はありませんが、氏名には 300 文字 (スペースを含む) の制限があります。

NHS は患者の名前に 70 文字を使用します


患者名 フォーマット/長さ: 最大an70

パスポートオフィスでは、最初/最後に 30 + 30、運転免許証 (DVLA) は合計 30 まで許可されます。

他の組織では、作成する書類に何を表示するかについて独自の制限があることに注意してください。HM Passport Office の場合、姓と名の制限はそれぞれ 30 文字であり、DVLA の場合は合計で 30 文字です。フルネーム。

于 2015-12-30T12:57:57.643 に答える
2

50を使用しています。

于 2008-08-27T15:42:06.243 に答える
2

あなたが本当に求めているのは、関連しているが実質的に異なる質問です.データベースに収まるように名前を切り捨てる頻度はどれくらいですか? 答えは、異なる長さの名前の頻度と、選択された最大長の両方に依存します。この懸念は、データベースによって使用されるリソースに関する懸念によってバランスが取れています。varchar フィールドのさまざまな最大長の間でオーバーヘッドの違いがどれほど小さいかを考えると、名前を切り捨ててフィールドをできるだけ大きくすることを強制されないという側面で、私は一般的に誤りを犯します。

于 2008-08-27T17:29:35.110 に答える
1

多くの文化には、しばしば姓と呼ばれる「第二の姓」があることに注意してください。たとえば、スペイン人と取引している場合、彼らは「姓」と姓が分かれていることを歓迎します。

最善の策は、名前コンポーネントのデータ型を定義し、それらを姓のデータ型に使用し、ロケールに応じて微調整することです。

于 2008-08-27T15:55:23.603 に答える
0

平均的な名は約 6 文字です。それは姓のために43を残します。:) 必要に応じて、おそらく短縮できるようです。

主な質問は、何行になると思いますか? 数百万行を取得するまで、 varchar(50) があなたを殺すとは思わない。

于 2008-08-27T15:44:16.847 に答える