認証されていないユーザーが名前などの情報を入力できるようにする簡単なWebフォームがあります。名前フィールドに50文字の制限を付けて、フィールドがvarchar(50)であるデータベーステーブルと一致させましたが、疑問に思い始めました。
テキスト列タイプなどを使用する方が適切ですか、または名前の長さを適切なものに制限する必要がありますか?
私はSQL Server 2005を使用していますが、これはあなたの応答で重要です。
編集:私は同様の問題に関するこの幅広い質問を見ませんでした。
認証されていないユーザーが名前などの情報を入力できるようにする簡単なWebフォームがあります。名前フィールドに50文字の制限を付けて、フィールドがvarchar(50)であるデータベーステーブルと一致させましたが、疑問に思い始めました。
テキスト列タイプなどを使用する方が適切ですか、または名前の長さを適切なものに制限する必要がありますか?
私はSQL Server 2005を使用していますが、これはあなたの応答で重要です。
編集:私は同様の問題に関するこの幅広い質問を見ませんでした。
回答:
英国政府データ標準カタログは、名と姓のそれぞれに35文字、またはフルネームを保持する単一のフィールドに70文字を推奨しています。
私はこれに遅れていることを知っていますが、とにかくこのコメントを追加します。他の人も同様の質問で将来ここに来る可能性があるからです。
ロケールに応じて列サイズを微調整することに注意してください。初めに、それはあなたがメンテナンスの悪夢にあなたを設定します、人々が移住するという事実を脇に置いて、彼らと彼らの名前を持ちます。
たとえば、これらの追加の姓を持つスペインの人々は、英語圏の国に移動して住むことができ、フルネームが使用されることを合理的に期待できます。ロシア人は姓に加えて愛称を持っています、いくつかのアフリカの名前はほとんどのヨーロッパの名前よりもかなり長い場合があります。
潜在的な行数を考慮して、各列をできる限り広くすることを検討してください。私は名、姓、名にそれぞれ40文字を使用しており、問題を発見したことはありません。
通常、varchar(255)を使用します(255はMySQLのvarchar型の最大長です)。
それが1つのフィールドのフルネームである場合、私は通常、最初のフィールドと最後のフィールドが128-64/64で別々のフィールドに進みます。
@Ian Nelson:他の人がそこで問題を見ているのではないかと思っています。
分割フィールドがあるとしましょう。これは合計70文字で、35名、35名です。ただし、フィールドが1つの場合は、姓と名を区切るスペースを無視して、1文字だけ短く変更します。確かに、これは「1文字のみ」ですが、フルネームを入力する人と入力しない人とで違いが生じる可能性があります。したがって、私はその提案を「名と姓のそれぞれに35文字、またはフルネームを保持する単一のフィールドに71文字」に変更します。
英国では、英国の人口の大部分を首尾よく処理するいくつかの政府基準があります-パスポート事務所、運転免許局、運転免許局、およびNHS。彼らは明らかに異なる基準を使用しています。
Deed Pollで名前を変更すると、300文字が許可されます。
名前の長さに法的な制限はありませんが、フルネームには300文字(スペースを含む)の制限があります。
患者名
形式/長さ:最大an70
パスポートオフィスでは最初/最後の30 + 30が許可されており、運転免許証(DVLA)は合計30です。
他の組織には、作成するドキュメントに表示する内容について独自の制限があることに注意してください。HMパスポートオフィスの場合、姓と名はそれぞれ30文字、DVLAの場合は合計で30文字です。フルネーム。
多くの文化では、しばしば「姓」と呼ばれる「第二姓」があることに注意してください。たとえば、スペインの人々を扱っている場合、彼らは「姓」から分離された姓を持っていることを高く評価します。
最善の策は、名前コンポーネントのデータ型を定義し、姓のデータ型にそれらを使用し、ロケールに応じて微調整することです。
平均的な名は約6文字です。これは、姓に43を残します。:)必要に応じて、おそらく短くすることができるようです。
主な質問は、いくつの行があると思いますか?varchar(50)が数百万行を取得するまであなたを殺そうとは思わない。