Database design 字段大小建议?

Database design 字段大小建议?,database-design,Database Design,是否有任何地方可以找到关于我应该在数据库中设置的字段长度的建议 我刚开始修复一个项目中的一些错误,几乎所有字段都设置为50 名字,姓氏,电子邮件 我想在这种情况下,名字和姓氏可能少于50 无论如何,问一下也没什么坏处。=)我通常用32来表示名字/姓氏之类的东西。我有一个姓氏很高的朋友,他说服我允许输入那么长的信息。25通常是一个安全的赌注。如果将来需要修改,只需几行代码就可以了 正确答案是“尽可能大” 大多数数据库字段的大小实际上是可变的,所以选择什么随机数无关紧要 因此,选择最大的随机数,你可

是否有任何地方可以找到关于我应该在数据库中设置的字段长度的建议

我刚开始修复一个项目中的一些错误,几乎所有字段都设置为50

名字,姓氏,电子邮件

我想在这种情况下,名字和姓氏可能少于50


无论如何,问一下也没什么坏处。=)

我通常用32来表示名字/姓氏之类的东西。我有一个姓氏很高的朋友,他说服我允许输入那么长的信息。

25通常是一个安全的赌注。如果将来需要修改,只需几行代码就可以了

正确答案是“尽可能大”

大多数数据库字段的大小实际上是可变的,所以选择什么随机数无关紧要

因此,选择最大的随机数,你可以侥幸逃脱

我选择255,除非有令人信服的理由不这样做

缩短的一个令人信服的原因是总体行大小太大


另一个令人信服的原因是实际定义的最大长度标准。

如果所讨论的列用于存储包含规范的内容,如电子邮件地址,则使用该规范。例如,电子邮件地址允许的最大长度为256个字符。
@
符号之前的任何字符都不能超过64个字符。其他已知规格的代码示例有银行代码、货币代码、语言代码、VIN、ISBN等。您应该使用最适合该值的长度。目标是通过将列的规范与数据的规范相匹配,使数据库尽可能地保护自己不受坏数据的影响

然而,名字更为棘手。名字和姓氏的概念本身并不是通用的。此外,名字和姓氏的长度在政府机构之间差别很大。我的名字和姓氏倾向于以25个字符开始,看看这是否足够(25个字符的名字或姓氏是一个很长的名字)。但是,请注意,您可能会在使用国际名称时遇到麻烦。因此,最好创建一个通用的“姓名”列,用户可以在其中输入此人的全名

就包含所有这些规范的网站而言,据我所知,没有这样的地方。谷歌是您的最佳选择或权威来源(例如,税务标识的IRS、驾照规格的DMV、地址规格的USP等)


这也是我的方法。上一次我读到(承认是在很久以前)对于大多数数据库,varchar只使用与存储空间相同的空间加上一个字节的长度。事实上,我认为有些数据库只允许您在没有长度说明符的情况下指定varchar。因此,只有当我想将长度限制在小于255或最大值的范围内时,我才对这些类型的字段使用长度。SQLite实际上不使用任何大小。它们只是用于与数据库兼容,而数据库的大小至关重要。我完全不同意。为什么不把它们做成varchar(max)?如果您允许用户将《战争与和平》的副本塞进一个专栏,他们会的。你在乞求糟糕的数据。@Thomas:没人说过用户界面,是吗?在哪里提到的?记住,你也希望能够读取数据。您提取的行的大小受数据库驱动程序中的缓冲区限制,因此您可能希望限制行的大小,以便记录不会太大而无法提取。建议您遵循数据宽度的规范,这是正确的。在您的情况下,我希望规范是数据输入表单上可以容纳多少个字符。如果表单只接受32个字符,那么实际上没有任何理由将其设为varchar(max)。使用字符字段时,SQL可能能够使用数据的就地更新,而不是将数据移出页面,从而产生额外的IO。