关于数据库设计,针对某些字段,比如名字的姓、中间名和名字本身,有没有什么推荐的列大小?此外,一个中间名标准的字符大小是否安全,或者应该为中间缩写留出更多的空间?
具体而言,我正在寻找的是大小,可以让这个问题在国际使用中不用担心。我见过一些两个字符的中间缩写,所以我觉得单个字符可能不是一个好主意,但我很想知道是否已经有任何指南。
具体而言,我正在寻找的是大小,可以让这个问题在国际使用中不用担心。我见过一些两个字符的中间缩写,所以我觉得单个字符可能不是一个好主意,但我很想知道是否已经有任何指南。
ISO目前还没有发布有关人名的命名标准(尚未),不过我听说初步草案正在最高层级传阅。
:)
说真的,64个字符左右对于99.99%的名字和姓氏来说应该足够了 - 无论是哪种语言。我从来没有见过除MI之外的其他字符(虽然你说得对,许多人有多个MI)。
顺便说一句:除非我搞错了,电子邮件地址在技术上可以长达320个字符,并且可以包含!# $%&'* + - / =?^ _` {|}〜和“.”,但不能作为第一个或最后一个字符出现,也不能连续出现两次或更多次。
PS. 我宠物兔的名字是“His Imperial Majesty Theopolops Bunny Galore”。不用说,这在兽医的数据库中被截断了。我想他们把它写成了“His Imperial Maj”。就这样吧。
我不确定长度,但如果您要进行国际化,则一定要选择nvarchar
,因为它将支持您可能遇到的任何“扩展”ASCII字符。 nvarchar
的另一个好处是它具有固定的最大长度,但不会将值填充到该长度。
换句话说,我的名字将被存储为
'Andrew'
在一个nvarchar(20)
字段中,但实际上会被存储。
'Andrew '
在一个char(20)
字段中。因此,考虑到这一点,我会为名称选择一个较大的数字,并认为您不会浪费使用nvarchar
的额外空间。
个人认为这取决于您合理预期需要存储多少数据。即使您将拥有一百万个名称,使用char(64)或更大的每个名称可能不会有太大影响。如果大小是一个问题,您可以从32开始,并使用alter column增加大小,但请记住,对于大型表格,这是一项昂贵的操作。