问题描述
|
该MySQL表由ActiveRecord生成。
+--------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| RecordType | tinyint(4) | YES | | NULL | |
| Location | varchar(8) | YES | | NULL | |
请在第二栏中向我解释tinyint(4)的含义。根据MySQL文档,tinyint的大小为1个字节。但这是否意味着实际上需要4个字节来存储此数据。生成第二列的代码是这样的。
t.column :RecordType,:integer,:limit => 1
解决方法
这意味着它为该数据类型使用1个字节,而不是4个字节,因此可能的数字范围更小(-128到127或0-255表示无符号,如果您愿意的话,则为2 ^ 8字节)。
TINYINT(4)是显示长度,因此它将使用四个数字来表示数字。