此问题已在此处有答案:
Do length and decimals settings matter for datetime or int columns?(2个答案)
关闭27天前。
我在CodeIgniter文档中看到过这段代码。
<?php
$fields = [
'id' => [
'type' => 'INT',
'constraint' => 5,
'unsigned' => true,
'auto_increment' => true,
],
'title' => [
'type' => 'VARCHAR',
'constraint' => '100',
'unique' => true,
],
'author' => [
'type' => 'VARCHAR',
'constraint' => 100,
'default' => 'King of Town',
],
'description' => [
'type' => 'TEXT',
'null' => true,
],
'status' => [
'type' => 'ENUM',
'constraint' => ['publish', 'pending', 'draft'],
'default' => 'pending',
],
];
id字段将转换为INT(5)
。我认为一个整数对于id来说应该足够大。增加长度的意义是什么?
我通常使用INT
。我想知道什么是最好的做法。
2条答案
按热度按时间wd2eg0qa1#
INT(5)
是一个4字节整数,显示宽度为5。仅当使用附加的ZEROFILL
选项定义整数列时,才使用显示宽度。xghobddn2#
定义的长度不像字段的限制或最大长度,您可以使用长度
5
,并且仍然能够插入长度为20
的ID。(* 答案已经说完了,剩下的只是多余的解释 *)
你可以忽略它,它实际上是用于(视觉表示),比如当你使用一些数据库工具时,它会为5个字符留下一个空格,但这并不意味着它不能是一个超过5的值。例如,如果我们添加一列
name
,您可以将长度设置为10。这意味着,即使在某些数据库工具中显示表数据,或者为了数据的可视化表示,它也将仅显示前10个字符,作为良好外观和良好数据阅读的行为,但它可以是具有超过10个字符的名称,但它将被省略。另一方面,如果你关心字段的范围,你应该使用适当的整数类型(
INT
,BIGINT
...)。