3

我有一个人表,其中包含名字和姓氏等列。

用于这些列的最佳数据类型是什么,因为它们可以是任意长度。在这方面有经验法则吗?

我正在使用 sql server 2008。

4

4 回答 4

5

I think it is highly unlikely someone to have a Firstname or Lastname more than 50 characters.带有 Unicode 字符的字符串类型的数据类型是NVARCHAR,您可以将它们都限制为50 or even 100不会有太大区别。

所以你可以说

Firstname nvarchar(50)
Lastname nvarchar(50)
于 2012-12-28T12:55:25.423 回答
3

使用NVARCHAR(N),其中N是您希望该字段支持的最大字符数。

如果您希望永远不会有国际名称(例如中文、日文、希伯来文和其他文字),那么您可以使用VARCHAR(N).

这些是可变长度字段,适用于可变长度的字符串数据。

于 2012-12-28T12:49:49.237 回答
1

如果任何长度可以达到 NVarchar 的 4000 或 Varchar 的 8000,您可以使用 (N)Varchar(max)。但是,如果这与性能问题不同,您应该更喜欢 (N)Varchar(Yourlimit) 。

参考 1参考 2

于 2012-12-28T12:55:49.567 回答
1

您可以使用 Varchar(50) 数据类型并将全名分为名字、中间名和 l

于 2012-12-28T14:16:54.707 回答