我已经使用 SQL 大约 2 年了,它一直在我的脑海中。
最佳实践说将列的长度分配给您所期望的
SQL 想要一个专用的特定行作为主键,但它也是 A_i 字段的最佳实践......但是分配它的长度是多少?如果留空,则默认为11,表示999,999,999
这看起来不错,但最佳实践也声明永远不要从数据库中真正清除任何内容;只需附加一个 0 或 1 来表示已删除,这是出于存档/恢复目的.. 也可用于审核用户想要清除的内容..
举个例子:
我有一个已经存在多年的网站,遵循不从数据库中删除任何内容的最佳实践;我的数据库/网站流量非常大,每天有大量的独立用户/访问者。
现在,如果我保留 SQL 默认长度 11,如果我的表达到最大长度,然后另一个用户决定注册,会发生什么?它会抛出一个错误并且不会继续,这会给新用户带来少量的停机时间,原因是数据库管理员必须登录到 SQL 并更改长度。这并不费力,但确实如此在早期开发过程中可以避免的努力..
我所做的,当创建一个表时给出一个255的长度,在我的脑海里,有些东西告诉我“这不是好的做法”,但它避免了上述示例的非常微小的可能性。
与没有指定长度的字段相比text
,为什么就 A_I 字段而言不能相同。
不要误会我的意思,我完全理解可用的数据类型。
我通过 google 和 SO 进行了大量研究,但结果指出了有关更改表格以增加当前长度的问题。这不是我要的。
总体:
总的来说,我想问的是什么;A_I 字段的理想长度是多少?如果它最大化长度但同时牢记最佳实践,以最大限度地减少抛出错误的微小风险。