gpt4 book ai didi

sql - 数据库字段的默认大小

转载 作者:太空狗 更新时间:2023-10-30 01:45:28 25 4
gpt4 key购买 nike

您对常用数据库字段(如名字、姓氏、电子邮件、密码等)使用的大小是多少?我在很多博客、论坛、电子商务等数据库中看到这些公共(public)字段。但我不知道是否有一些引用或默认的公共(public)字段大小。所以,我想知道您选择常用字段大小的方法/引用/依据是什么。

最佳答案

部分取决于您的 DBMS。有些,如 MySQL 5,关心 VARCHAR(n) 列的长度,而不是无限长度的 TEXT 列;其他的,比如 PostgreSQL,认为 TEXT 和 VARCHAR(n) 在内部是相同的,除了在 VARCHAR(n) 列上检查长度。在 PostgreSQL 中写类似 VARCHAR(65536) 的东西是愚蠢的;如果您想要无限长度的列,请选择 TEXT 并完成它。

当然,有时尝试存储太长的值会破坏您的布局,或者允许某人通过选择没有空格的长名称来滥用系统(例如)。通常我对这样的用户名字段所做的只是选择一个上限长度,这样任何想要更长用户名的人都会造成麻烦; 64 个字符是一个不错的整数值,而且看起来效果很好。对于真实姓名和地址(不像用户名那样经常向用户显示),您需要使用更长的时间。您需要一个足够大的值以接受任何有效输入,但又不能大到有人可以在字段中填充 GB 长的字符串来攻击您的系统。 1024 个字符是非常合理的:1k 是一个足够小的文本量,可以轻松处理,是一个整数,并且比任何理智的地址行或名称都大。

根据相关的 RFC,我现在懒得查,电子邮件地址不能超过 320 个字符。这就是您的电子邮件字段长度。 事实证明,SMTP 将字段长度限制为 256 个字符;由于电子邮件地址必须用括号括起来,最长的有效电子邮件地址实际上是 254 个字符。 (This page 有更多详细信息。)所以您的电子邮件字段长度。

密码应该永远以纯文本形式存储,因此您的密码字段应该是一个字节数组或 BLOB 类型,长度足以存储您正在使用的哈希函数的输出使用(或正在使用的密码组的最大元素,用于更高级的方案,如 SRP-6a)。

关于sql - 数据库字段的默认大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com