MySQL以外のRDSでは使えるbit数だったり、桁数だったりに制限がかけられるそうですね。
でも、MySQLは仰るとおりint型のサイズを10にしようが5にしようが
挙動自体に影響されないのでほとんど意味がありません。
ほとんど?じゃあ何か変わるんだよね?
超しょぼいですがMySQLでも2つあります。
1.結果の横幅
ターミナルからmysql -uroot -p等で接続して、SQL文を発行するじゃないですか?
select * from users wheere...;みたいな奴です。
その時の結果の横幅の初期サイズがそれで固定されます。
// idがint(10)の場合
+-----------+--------+
| id + name |
+-----------+--------+
| 1 + miyabi |
+-----------+--------+
// idがint(5)の場合
+------+--------+
| id + name |
+------+--------+
| 1 + miyabi |
+------+--------+
これが転じて、明確な最大値があるなら設定しておくと、
他のプログラマが値を予測しやすい…程度には役に立ちます。
2.tinyint型のサイズを1にするとboolean型になる
これはMySQLの仕様的な話で、正確には把握してませんので必要があればぐぐってみてください。
歴史的にMySQLにはBooleanがなくて1か0で補ってるとか察する事は出来ますが、
これも別に知る必要がなかったので調べた事もないです。
Booleanで作っても値は0か1でとれますし、
Tinyint(1)で作っても値は0か1かの真偽値になったはずです。
ハマる時はハマると思うので、お使いのフレームワークや言語で挙動を確認してみてください。
2016/01/10 02:49