我应该在MySQL中使用什么样的整数?

时间:2011-03-04 05:11:34

标签: mysql database database-design types integer

我正在为系统创建数据库模式,我开始想知道MySQL中的Integer数据类型。我已经看到了,至少在Moodle中,数据类型有时是TINYINT(用于标记之类的东西),INT(用于id号)或BIGINT(用于几乎无限的AI值,如用户id)。

我想知道:这对实际数据库有何影响?如果我使用INT作为标志(例如1 =挂起,2 =正在处理,3 =正在处理,4 =处理)而不是TINYINT或BIGINT,它是否会产生影响?那么不设置约束呢? (再次,像一个标志,使用TINYINT(1)或TINYINT没有特定的数字)

3 个答案:

答案 0 :(得分:4)

您提供的大小不会影响数据的存储方式。

因此INT(11)以与INT(3)相同的方式存储在磁盘上。

用你的例子   1 = pending, 2 = in process, 3 = revewing, 4 = processed

我会改用ENUM('pending', 'inprocess', 'revewing', 'processed')。这使得它在代码和数据中可读,同时它提供与使用整数相同的速度。

答案 1 :(得分:3)

答案 2 :(得分:2)

您应该阅读有关different numeric datatypes的内容,并根据此做出决定。